15 New Messages
Digest #2224
2a
memperoleh jumlah banyaknya buah secara otomatis by "Paulus Taripar" paulustaripar@rocketmail.com
Messages
Wed Apr 10, 2013 9:30 pm (PDT) . Posted by:
"Jan Raisin"
mr Kid,
gak jadi xixixix :D
skripnya udah bisa jalan
cara kedua lebih cepat 8x dibandingkan cara pertama
Wassalam,
-MJR-
Pada 11 April 2013 11.26, Jan Raisin <miss.jan.raisin@gmail.com > menulis:
> mr Kid,
>
> waktu scriptnya Jan jalankan, muncul error seperti ini
> [image: Gambar sisip 2]
>
> apa yang salah dengan excel Jan ?
>
> Wassalam,
>
> -MJR-
>
>
> Pada 11 April 2013 11.19, Mr. Kid <mr.nmkid@gmail.com > menulis:
>
> **
>>
>>
>> Bagaimana kalau dicoba pada penerapannya dan dihitung waktunya. Dari
>> sekian banyak cara yang ada di atas sana tadi, mana yang lebih pas dan
>> lebih sesuai untuk kondisi dalam contoh penerapan tadi.
>>
>> misal
>> Cara 1 : Columns("A:A").Find(vbNullString).Select
>> Cara 2 : cells(rows.count,1).end(xlup).offset(1).select
>>
>> buat workbook baru dan isi sheet1 dengan beberapa data di kolom A, B,
>> maupun C ( banyak baris x 3 kolom)
>> ke VBE (ALT F11) -> menu Insert -> Module -> copasken :
>>
>> private declare function QueryPerformanceCounter Lib "kernel32.dll"
>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
>> private type LARGE_INTEGER
>> lowpart as long
>> highpart as long
>> end type
>>
>> public sub TesBarisBaru()
>> dim udtStart as large_integer, udtEnd as large_integer
>>
>> 'cara 1
>> call QueryPerformanceCounte(udtstart)
>> Columns("A:A").Find(vbNullString).Select
>> call QueryPerformanceCounte(udtend)
>> debug.print "cara 1 : Columns(""A:A"").Find(vbNullString).Select", _
>> "Alamat akhir : " & selection.address, _
>> "Waktu : " & udtend.highpart-udtstart.highpart
>> & " | " & udtend.lowpart-udtstart.lowpart
>>
>> 'cara 2
>> call QueryPerformanceCounte(udtstart)
>> cells(rows.count,1).end(xlup).offset(1).select
>> call QueryPerformanceCounte(udtend)
>> debug.print "cara 2 : cells(rows.count,1).end(xlup).offset(1).select",
>> _
>> "Alamat akhir : " & selection.address, _
>> "Waktu : " & udtend.highpart-udtstart.highpart
>> & " | " & udtend.lowpart-udtstart.lowpart
>>
>> end sub
>>
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>>
>> 2013/4/10 hendrik karnadi <hendrikkarnadi@yahoo.com >
>>
>>> **
>>>
>>>
>>> Terima kasih Miss Jan atas koreksinya.
>>>
>>> Dengan asumsi Nama terisi penuh (tidak kosong di tengah) maka saya coba
>>> revisi seperti ini,
>>>
>>> Untuk mencari baris baru
>>> Sub BarBar()
>>> Columns("A:A").Find(vbNullString).Select
>>> End Sub
>>> Yang ini kayaknya cukup pendek, mustinya sdh OK
>>>
>>> Untuk mencari Nama tertentu (lengkap, tidak masalah huruf besar kecil)
>>> Sub RekTtt()
>>> On Error GoTo Pesan
>>> skunci = InputBox("Masukkan Nama")
>>> If skunci <> vbNullString Then Columns("A:A").Find(skunci,
>>> Lookat:=xlWhole).Activate
>>> Exit Sub
>>> Pesan:
>>> MsgBox "Nama tidak ada", vbInformation, "PESAN"
>>> End Sub
>>> Yang ini terpaksa agak panjang supaya logikanya nyambung.
>>>
>>> Khusus yang kedua, ada kode yang bisa lebih pendek Miss Jan ?
>>>
>>> Salam,
>>> HK
>>>
>>>
>>> ------------------------------
>>> *From:* Jan Raisin <miss.jan.raisin@gmail.com >
>>> *To:* belajar-excel@yahoogroups.com
>>> *Sent:* Wednesday, 10 April 2013, 14:26
>>> *Subject:* Re: [belajar-excel] Cari baris baru dan record tertentu
>>>
>>>
>>> pak Hendrik,
>>>
>>> untuk script yang ini:
>>> Sub BarBar()
>>> Columns("A:A").SpecialCells(xlLastCell).Offset(1, 0).Select
>>> End Sub
>>>
>>> coba lakukan tes seperti ini pada workbook yang baru:
>>> 1. Buat header di cell A1
>>> 2. input data manual di cell A2 sampai A20 (sembarang data)
>>> 3. hapus data mulai cell A2 sampai A20
>>> 4. jalankan script tadi dan lihat hasilnya
>>>
>>> Lalu untuk script yang ini:
>>> Sub RekTtt()
>>> Columns("A:A").Find("Sania").Activate
>>> End Sub
>>>
>>> bagaimana jika ternyata tidak ada cell yang berisi kata Sania ?
>>>
>>> IMHO,
>>>
>>> >> proses select atau activate sebisa mungkin dihindari, karena bisa
>>> dimanfaatkan untuk proses yang lain
>>> >> pencarian posisi dengan menggunakan SpecialCell untuk input data yang
>>> baru kadang menghasilkan data yang tidak tepat.
>>> >> posisi pencarian record sebaiknya dimasukkan ke dalam variabel
>>> bertipe range, lalu dilakukan kros cek apakah record tersebut ada atau tidak
>>>
>>> ini hanya pendapat pribadi Jan yang masih banyak kekurangannya. jika ada
>>> yang salah tolong dikoreksi.
>>>
>>> Salam,
>>>
>>> -Miss Jan Raisin-
>>>
>>>
>>>
>>> Pada 10 April 2013 13.30, hendrik karnadi <hendrikkarnadi@yahoo.com >menulis:
>>>
>>> **
>>>
>>> Rekan Be-Exceler,
>>>
>>> Dalam database kita sering dihadapkan pada dua hal, yaitu:
>>> - Mencari baris baru untuk input data baru
>>> - Mencari record tertentu dari data yang sudah ada, mis. untuk diedit
>>>
>>> Biasanya/sering kita gunakan Offset(Tabel.Rows.Count+1,.....) atau
>>> .......End(xlUp) untuk mencari baris baru dan Find("xyz", Lookin=xlValues)
>>> untuk mencari record tertentu yang sudah ada.
>>>
>>> Untuk mencari baris baru saya gunakan code:
>>> Sub BarBar()
>>> Columns("A:A").SpecialCells(xlLastCell).Offset(1, 0).Select
>>> End Sub
>>>
>>> Untuk mencari record tertentu (mis "Sania") saya gunakan code:
>>> Sub RekTtt()
>>> Columns("A:A").Find("Sania").Activate
>>> End Sub
>>>
>>> File terlampir.
>>>
>>> Pertanyaannya:
>>> Apakah kedua code tsb mengandung kelemahan?
>>>
>>> Salam,
>>> HK
>>>
>>>
>>>
>>>
>>
>>
>
>
gak jadi xixixix :D
skripnya udah bisa jalan
cara kedua lebih cepat 8x dibandingkan cara pertama
Wassalam,
-MJR-
Pada 11 April 2013 11.26, Jan Raisin <miss.jan.raisin@
> mr Kid,
>
> waktu scriptnya Jan jalankan, muncul error seperti ini
> [image: Gambar sisip 2]
>
> apa yang salah dengan excel Jan ?
>
> Wassalam,
>
> -MJR-
>
>
> Pada 11 April 2013 11.19, Mr. Kid <mr.nmkid@gmail.
>
> **
>>
>>
>> Bagaimana kalau dicoba pada penerapannya dan dihitung waktunya. Dari
>> sekian banyak cara yang ada di atas sana tadi, mana yang lebih pas dan
>> lebih sesuai untuk kondisi dalam contoh penerapan tadi.
>>
>> misal
>> Cara 1 : Columns("
>> Cara 2 : cells(rows.count,
>>
>> buat workbook baru dan isi sheet1 dengan beberapa data di kolom A, B,
>> maupun C ( banyak baris x 3 kolom)
>> ke VBE (ALT F11) -> menu Insert -> Module -> copasken :
>>
>> private declare function QueryPerformanceCou
>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
>> private type LARGE_INTEGER
>> lowpart as long
>> highpart as long
>> end type
>>
>> public sub TesBarisBaru(
>> dim udtStart as large_integer, udtEnd as large_integer
>>
>> 'cara 1
>> call QueryPerformanceCou
>> Columns("
>> call QueryPerformanceCou
>> debug.print "cara 1 : Columns("
>> "Alamat akhir : " & selection.address, _
>> "Waktu : " & udtend.highpart-
>> & " | " & udtend.lowpart-
>>
>> 'cara 2
>> call QueryPerformanceCou
>> cells(rows.count,
>> call QueryPerformanceCou
>> debug.print "cara 2 : cells(rows.count,
>> _
>> "Alamat akhir : " & selection.address, _
>> "Waktu : " & udtend.highpart-
>> & " | " & udtend.lowpart-
>>
>> end sub
>>
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>>
>> 2013/4/10 hendrik karnadi <hendrikkarnadi@
>>
>>> **
>>>
>>>
>>> Terima kasih Miss Jan atas koreksinya.
>>>
>>> Dengan asumsi Nama terisi penuh (tidak kosong di tengah) maka saya coba
>>> revisi seperti ini,
>>>
>>> Untuk mencari baris baru
>>> Sub BarBar()
>>> Columns("
>>> End Sub
>>> Yang ini kayaknya cukup pendek, mustinya sdh OK
>>>
>>> Untuk mencari Nama tertentu (lengkap, tidak masalah huruf besar kecil)
>>> Sub RekTtt()
>>> On Error GoTo Pesan
>>> skunci = InputBox("
>>> If skunci <> vbNullString Then Columns("
>>> Lookat:=xlWhole)
>>> Exit Sub
>>> Pesan:
>>> MsgBox "Nama tidak ada", vbInformation, "PESAN"
>>> End Sub
>>> Yang ini terpaksa agak panjang supaya logikanya nyambung.
>>>
>>> Khusus yang kedua, ada kode yang bisa lebih pendek Miss Jan ?
>>>
>>> Salam,
>>> HK
>>>
>>>
>>> ------------
>>> *From:* Jan Raisin <miss.jan.raisin@
>>> *To:* belajar-excel@
>>> *Sent:* Wednesday, 10 April 2013, 14:26
>>> *Subject:* Re: [belajar-excel] Cari baris baru dan record tertentu
>>>
>>>
>>> pak Hendrik,
>>>
>>> untuk script yang ini:
>>> Sub BarBar()
>>> Columns("
>>> End Sub
>>>
>>> coba lakukan tes seperti ini pada workbook yang baru:
>>> 1. Buat header di cell A1
>>> 2. input data manual di cell A2 sampai A20 (sembarang data)
>>> 3. hapus data mulai cell A2 sampai A20
>>> 4. jalankan script tadi dan lihat hasilnya
>>>
>>> Lalu untuk script yang ini:
>>> Sub RekTtt()
>>> Columns("
>>> End Sub
>>>
>>> bagaimana jika ternyata tidak ada cell yang berisi kata Sania ?
>>>
>>> IMHO,
>>>
>>> >> proses select atau activate sebisa mungkin dihindari, karena bisa
>>> dimanfaatkan untuk proses yang lain
>>> >> pencarian posisi dengan menggunakan SpecialCell untuk input data yang
>>> baru kadang menghasilkan data yang tidak tepat.
>>> >> posisi pencarian record sebaiknya dimasukkan ke dalam variabel
>>> bertipe range, lalu dilakukan kros cek apakah record tersebut ada atau tidak
>>>
>>> ini hanya pendapat pribadi Jan yang masih banyak kekurangannya. jika ada
>>> yang salah tolong dikoreksi.
>>>
>>> Salam,
>>>
>>> -Miss Jan Raisin-
>>>
>>>
>>>
>>> Pada 10 April 2013 13.30, hendrik karnadi <hendrikkarnadi@
>>>
>>> **
>>>
>>> Rekan Be-Exceler,
>>>
>>> Dalam database kita sering dihadapkan pada dua hal, yaitu:
>>> - Mencari baris baru untuk input data baru
>>> - Mencari record tertentu dari data yang sudah ada, mis. untuk diedit
>>>
>>> Biasanya/sering kita gunakan Offset(Tabel.
>>> .......End(xlUp) untuk mencari baris baru dan Find("xyz"
>>> untuk mencari record tertentu yang sudah ada.
>>>
>>> Untuk mencari baris baru saya gunakan code:
>>> Sub BarBar()
>>> Columns("
>>> End Sub
>>>
>>> Untuk mencari record tertentu (mis "Sania"
>>> Sub RekTtt()
>>> Columns("
>>> End Sub
>>>
>>> File terlampir.
>>>
>>> Pertanyaannya:
>>> Apakah kedua code tsb mengandung kelemahan?
>>>
>>> Salam,
>>> HK
>>>
>>>
>>>
>>>
>>
>>
>
>
Wed Apr 10, 2013 9:30 pm (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
hehehe.. ada yang kurang huruf r di queryperformancecounter
saya copas lagi deh....
private declare function QueryPerformanceCounter Lib "kernel32.dll" (ByRef
lpPerformanceCount As LARGE_INTEGER) As Long
private type LARGE_INTEGER
lowpart as long
highpart as long
end type
public sub TesBarisBaru()
dim udtStart as large_integer, udtEnd as large_integer
'cara 1
call QueryPerformanceCounter(udtstart)
Columns("A:A").Find(vbNullString).Select
call QueryPerformanceCounter(udtend)
debug.print "cara 1 : Columns(""A:A"").Find(vbNullString).Select", _
"Alamat akhir : " & selection.address, _
"Waktu : " & udtend.highpart-udtstart.highpart &
" | " & udtend.lowpart-udtstart.lowpart
'cara 2
call QueryPerformanceCounter(udtstart)
cells(rows.count,1).end(xlup).offset(1).select
call QueryPerformanceCounter(udtend)
debug.print "cara 2 : cells(rows.count,1).end(xlup).offset(1).select",
_
"Alamat akhir : " & selection.address, _
"Waktu : " & udtend.highpart-udtstart.highpart &
" | " & udtend.lowpart-udtstart.lowpart
end sub
moga-moga gak ada yang error.
Wassalam,
Kid.
2013/4/11 Jan Raisin <miss.jan.raisin@gmail.com >
> **
>
>
> mr Kid,
>
> waktu scriptnya Jan jalankan, muncul error seperti ini
> [image: Gambar sisip 2]
>
> apa yang salah dengan excel Jan ?
>
> Wassalam,
>
> -MJR-
>
>
> Pada 11 April 2013 11.19, Mr. Kid <mr.nmkid@gmail.com > menulis:
>
> **
>>
>>
>> Bagaimana kalau dicoba pada penerapannya dan dihitung waktunya. Dari
>> sekian banyak cara yang ada di atas sana tadi, mana yang lebih pas dan
>> lebih sesuai untuk kondisi dalam contoh penerapan tadi.
>>
>> misal
>> Cara 1 : Columns("A:A").Find(vbNullString).Select
>> Cara 2 : cells(rows.count,1).end(xlup).offset(1).select
>>
>> buat workbook baru dan isi sheet1 dengan beberapa data di kolom A, B,
>> maupun C ( banyak baris x 3 kolom)
>> ke VBE (ALT F11) -> menu Insert -> Module -> copasken :
>>
>> private declare function QueryPerformanceCounter Lib "kernel32.dll"
>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
>> private type LARGE_INTEGER
>> lowpart as long
>> highpart as long
>> end type
>>
>> public sub TesBarisBaru()
>> dim udtStart as large_integer, udtEnd as large_integer
>>
>> 'cara 1
>> call QueryPerformanceCounte(udtstart)
>> Columns("A:A").Find(vbNullString).Select
>> call QueryPerformanceCounte(udtend)
>> debug.print "cara 1 : Columns(""A:A"").Find(vbNullString).Select", _
>> "Alamat akhir : " & selection.address, _
>> "Waktu : " & udtend.highpart-udtstart.highpart
>> & " | " & udtend.lowpart-udtstart.lowpart
>>
>> 'cara 2
>> call QueryPerformanceCounte(udtstart)
>> cells(rows.count,1).end(xlup).offset(1).select
>> call QueryPerformanceCounte(udtend)
>> debug.print "cara 2 : cells(rows.count,1).end(xlup).offset(1).select",
>> _
>> "Alamat akhir : " & selection.address, _
>> "Waktu : " & udtend.highpart-udtstart.highpart
>> & " | " & udtend.lowpart-udtstart.lowpart
>>
>> end sub
>>
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>>
>> 2013/4/10 hendrik karnadi <hendrikkarnadi@yahoo.com >
>>
>>> **
>>>
>>>
>>> Terima kasih Miss Jan atas koreksinya.
>>>
>>> Dengan asumsi Nama terisi penuh (tidak kosong di tengah) maka saya coba
>>> revisi seperti ini,
>>>
>>> Untuk mencari baris baru
>>> Sub BarBar()
>>> Columns("A:A").Find(vbNullString).Select
>>> End Sub
>>> Yang ini kayaknya cukup pendek, mustinya sdh OK
>>>
>>> Untuk mencari Nama tertentu (lengkap, tidak masalah huruf besar kecil)
>>> Sub RekTtt()
>>> On Error GoTo Pesan
>>> skunci = InputBox("Masukkan Nama")
>>> If skunci <> vbNullString Then Columns("A:A").Find(skunci,
>>> Lookat:=xlWhole).Activate
>>> Exit Sub
>>> Pesan:
>>> MsgBox "Nama tidak ada", vbInformation, "PESAN"
>>> End Sub
>>> Yang ini terpaksa agak panjang supaya logikanya nyambung.
>>>
>>> Khusus yang kedua, ada kode yang bisa lebih pendek Miss Jan ?
>>>
>>> Salam,
>>> HK
>>>
>>>
>>> ------------------------------
>>> *From:* Jan Raisin <miss.jan.raisin@gmail.com >
>>> *To:* belajar-excel@yahoogroups.com
>>> *Sent:* Wednesday, 10 April 2013, 14:26
>>> *Subject:* Re: [belajar-excel] Cari baris baru dan record tertentu
>>>
>>>
>>> pak Hendrik,
>>>
>>> untuk script yang ini:
>>> Sub BarBar()
>>> Columns("A:A").SpecialCells(xlLastCell).Offset(1, 0).Select
>>> End Sub
>>>
>>> coba lakukan tes seperti ini pada workbook yang baru:
>>> 1. Buat header di cell A1
>>> 2. input data manual di cell A2 sampai A20 (sembarang data)
>>> 3. hapus data mulai cell A2 sampai A20
>>> 4. jalankan script tadi dan lihat hasilnya
>>>
>>> Lalu untuk script yang ini:
>>> Sub RekTtt()
>>> Columns("A:A").Find("Sania").Activate
>>> End Sub
>>>
>>> bagaimana jika ternyata tidak ada cell yang berisi kata Sania ?
>>>
>>> IMHO,
>>>
>>> >> proses select atau activate sebisa mungkin dihindari, karena bisa
>>> dimanfaatkan untuk proses yang lain
>>> >> pencarian posisi dengan menggunakan SpecialCell untuk input data yang
>>> baru kadang menghasilkan data yang tidak tepat.
>>> >> posisi pencarian record sebaiknya dimasukkan ke dalam variabel
>>> bertipe range, lalu dilakukan kros cek apakah record tersebut ada atau tidak
>>>
>>> ini hanya pendapat pribadi Jan yang masih banyak kekurangannya. jika ada
>>> yang salah tolong dikoreksi.
>>>
>>> Salam,
>>>
>>> -Miss Jan Raisin-
>>>
>>>
>>>
>>> Pada 10 April 2013 13.30, hendrik karnadi <hendrikkarnadi@yahoo.com >menulis:
>>>
>>> **
>>>
>>> Rekan Be-Exceler,
>>>
>>> Dalam database kita sering dihadapkan pada dua hal, yaitu:
>>> - Mencari baris baru untuk input data baru
>>> - Mencari record tertentu dari data yang sudah ada, mis. untuk diedit
>>>
>>> Biasanya/sering kita gunakan Offset(Tabel.Rows.Count+1,.....) atau
>>> .......End(xlUp) untuk mencari baris baru dan Find("xyz", Lookin=xlValues)
>>> untuk mencari record tertentu yang sudah ada.
>>>
>>> Untuk mencari baris baru saya gunakan code:
>>> Sub BarBar()
>>> Columns("A:A").SpecialCells(xlLastCell).Offset(1, 0).Select
>>> End Sub
>>>
>>> Untuk mencari record tertentu (mis "Sania") saya gunakan code:
>>> Sub RekTtt()
>>> Columns("A:A").Find("Sania").Activate
>>> End Sub
>>>
>>> File terlampir.
>>>
>>> Pertanyaannya:
>>> Apakah kedua code tsb mengandung kelemahan?
>>>
>>> Salam,
>>> HK
>>>
>>>
>>>
>>>
>>
>
>
saya copas lagi deh....
private declare function QueryPerformanceCou
lpPerformanceCount As LARGE_INTEGER) As Long
private type LARGE_INTEGER
lowpart as long
highpart as long
end type
public sub TesBarisBaru(
dim udtStart as large_integer, udtEnd as large_integer
'cara 1
call QueryPerformanceCou
Columns("
call QueryPerformanceCou
debug.print "cara 1 : Columns("
"Alamat akhir : " & selection.address, _
"Waktu : " & udtend.highpart-
" | " & udtend.lowpart-
'cara 2
call QueryPerformanceCou
cells(rows.count,
call QueryPerformanceCou
debug.print "cara 2 : cells(rows.count,
_
"Alamat akhir : " & selection.address, _
"Waktu : " & udtend.highpart-
" | " & udtend.lowpart-
end sub
moga-moga gak ada yang error.
Wassalam,
Kid.
2013/4/11 Jan Raisin <miss.jan.raisin@
> **
>
>
> mr Kid,
>
> waktu scriptnya Jan jalankan, muncul error seperti ini
> [image: Gambar sisip 2]
>
> apa yang salah dengan excel Jan ?
>
> Wassalam,
>
> -MJR-
>
>
> Pada 11 April 2013 11.19, Mr. Kid <mr.nmkid@gmail.
>
> **
>>
>>
>> Bagaimana kalau dicoba pada penerapannya dan dihitung waktunya. Dari
>> sekian banyak cara yang ada di atas sana tadi, mana yang lebih pas dan
>> lebih sesuai untuk kondisi dalam contoh penerapan tadi.
>>
>> misal
>> Cara 1 : Columns("
>> Cara 2 : cells(rows.count,
>>
>> buat workbook baru dan isi sheet1 dengan beberapa data di kolom A, B,
>> maupun C ( banyak baris x 3 kolom)
>> ke VBE (ALT F11) -> menu Insert -> Module -> copasken :
>>
>> private declare function QueryPerformanceCou
>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
>> private type LARGE_INTEGER
>> lowpart as long
>> highpart as long
>> end type
>>
>> public sub TesBarisBaru(
>> dim udtStart as large_integer, udtEnd as large_integer
>>
>> 'cara 1
>> call QueryPerformanceCou
>> Columns("
>> call QueryPerformanceCou
>> debug.print "cara 1 : Columns("
>> "Alamat akhir : " & selection.address, _
>> "Waktu : " & udtend.highpart-
>> & " | " & udtend.lowpart-
>>
>> 'cara 2
>> call QueryPerformanceCou
>> cells(rows.count,
>> call QueryPerformanceCou
>> debug.print "cara 2 : cells(rows.count,
>> _
>> "Alamat akhir : " & selection.address, _
>> "Waktu : " & udtend.highpart-
>> & " | " & udtend.lowpart-
>>
>> end sub
>>
>>
>> Wassalam,
>> Kid.
>>
>>
>>
>>
>> 2013/4/10 hendrik karnadi <hendrikkarnadi@
>>
>>> **
>>>
>>>
>>> Terima kasih Miss Jan atas koreksinya.
>>>
>>> Dengan asumsi Nama terisi penuh (tidak kosong di tengah) maka saya coba
>>> revisi seperti ini,
>>>
>>> Untuk mencari baris baru
>>> Sub BarBar()
>>> Columns("
>>> End Sub
>>> Yang ini kayaknya cukup pendek, mustinya sdh OK
>>>
>>> Untuk mencari Nama tertentu (lengkap, tidak masalah huruf besar kecil)
>>> Sub RekTtt()
>>> On Error GoTo Pesan
>>> skunci = InputBox("
>>> If skunci <> vbNullString Then Columns("
>>> Lookat:=xlWhole)
>>> Exit Sub
>>> Pesan:
>>> MsgBox "Nama tidak ada", vbInformation, "PESAN"
>>> End Sub
>>> Yang ini terpaksa agak panjang supaya logikanya nyambung.
>>>
>>> Khusus yang kedua, ada kode yang bisa lebih pendek Miss Jan ?
>>>
>>> Salam,
>>> HK
>>>
>>>
>>> ------------
>>> *From:* Jan Raisin <miss.jan.raisin@
>>> *To:* belajar-excel@
>>> *Sent:* Wednesday, 10 April 2013, 14:26
>>> *Subject:* Re: [belajar-excel] Cari baris baru dan record tertentu
>>>
>>>
>>> pak Hendrik,
>>>
>>> untuk script yang ini:
>>> Sub BarBar()
>>> Columns("
>>> End Sub
>>>
>>> coba lakukan tes seperti ini pada workbook yang baru:
>>> 1. Buat header di cell A1
>>> 2. input data manual di cell A2 sampai A20 (sembarang data)
>>> 3. hapus data mulai cell A2 sampai A20
>>> 4. jalankan script tadi dan lihat hasilnya
>>>
>>> Lalu untuk script yang ini:
>>> Sub RekTtt()
>>> Columns("
>>> End Sub
>>>
>>> bagaimana jika ternyata tidak ada cell yang berisi kata Sania ?
>>>
>>> IMHO,
>>>
>>> >> proses select atau activate sebisa mungkin dihindari, karena bisa
>>> dimanfaatkan untuk proses yang lain
>>> >> pencarian posisi dengan menggunakan SpecialCell untuk input data yang
>>> baru kadang menghasilkan data yang tidak tepat.
>>> >> posisi pencarian record sebaiknya dimasukkan ke dalam variabel
>>> bertipe range, lalu dilakukan kros cek apakah record tersebut ada atau tidak
>>>
>>> ini hanya pendapat pribadi Jan yang masih banyak kekurangannya. jika ada
>>> yang salah tolong dikoreksi.
>>>
>>> Salam,
>>>
>>> -Miss Jan Raisin-
>>>
>>>
>>>
>>> Pada 10 April 2013 13.30, hendrik karnadi <hendrikkarnadi@
>>>
>>> **
>>>
>>> Rekan Be-Exceler,
>>>
>>> Dalam database kita sering dihadapkan pada dua hal, yaitu:
>>> - Mencari baris baru untuk input data baru
>>> - Mencari record tertentu dari data yang sudah ada, mis. untuk diedit
>>>
>>> Biasanya/sering kita gunakan Offset(Tabel.
>>> .......End(xlUp) untuk mencari baris baru dan Find("xyz"
>>> untuk mencari record tertentu yang sudah ada.
>>>
>>> Untuk mencari baris baru saya gunakan code:
>>> Sub BarBar()
>>> Columns("
>>> End Sub
>>>
>>> Untuk mencari record tertentu (mis "Sania"
>>> Sub RekTtt()
>>> Columns("
>>> End Sub
>>>
>>> File terlampir.
>>>
>>> Pertanyaannya:
>>> Apakah kedua code tsb mengandung kelemahan?
>>>
>>> Salam,
>>> HK
>>>
>>>
>>>
>>>
>>
>
>
Wed Apr 10, 2013 9:34 pm (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
oh sudah bisa....
hehehe...
ternyata, script yang cepat itu bukan yang paling pendek, tapi yang paling
efisien memilih fungsi dan alur prosesnya.
Jadi, proses berisi 1 fungsi yang dikerjakan 1000 count kalah cepat dengan
proses yang sama yang dikerjakan dengan 20 fungsi yang masing-masing fungsi
hanya butuh 20 count
Wassalam,
Kid.
2013/4/11 Jan Raisin <miss.jan.raisin@gmail.com >
> **
>
>
> mr Kid,
>
> gak jadi xixixix :D
> skripnya udah bisa jalan
>
> cara kedua lebih cepat 8x dibandingkan cara pertama
>
> Wassalam,
>
> -MJR-
>
>
> Pada 11 April 2013 11.26, Jan Raisin <miss.jan.raisin@gmail.com > menulis:
>
> mr Kid,
>>
>> waktu scriptnya Jan jalankan, muncul error seperti ini
>> [image: Gambar sisip 2]
>>
>> apa yang salah dengan excel Jan ?
>>
>> Wassalam,
>>
>> -MJR-
>>
>>
>> Pada 11 April 2013 11.19, Mr. Kid <mr.nmkid@gmail.com > menulis:
>>
>> **
>>>
>>>
>>> Bagaimana kalau dicoba pada penerapannya dan dihitung waktunya. Dari
>>> sekian banyak cara yang ada di atas sana tadi, mana yang lebih pas dan
>>> lebih sesuai untuk kondisi dalam contoh penerapan tadi.
>>>
>>> misal
>>> Cara 1 : Columns("A:A").Find(vbNullString).Select
>>> Cara 2 : cells(rows.count,1).end(xlup).offset(1).select
>>>
>>> buat workbook baru dan isi sheet1 dengan beberapa data di kolom A, B,
>>> maupun C ( banyak baris x 3 kolom)
>>> ke VBE (ALT F11) -> menu Insert -> Module -> copasken :
>>>
>>> private declare function QueryPerformanceCounter Lib "kernel32.dll"
>>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
>>> private type LARGE_INTEGER
>>> lowpart as long
>>> highpart as long
>>> end type
>>>
>>> public sub TesBarisBaru()
>>> dim udtStart as large_integer, udtEnd as large_integer
>>>
>>> 'cara 1
>>> call QueryPerformanceCounte(udtstart)
>>> Columns("A:A").Find(vbNullString).Select
>>> call QueryPerformanceCounte(udtend)
>>> debug.print "cara 1 : Columns(""A:A"").Find(vbNullString).Select",
>>> _
>>> "Alamat akhir : " & selection.address, _
>>> "Waktu : " &
>>> udtend.highpart-udtstart.highpart & " | " & udtend.lowpart-udtstart.lowpart
>>>
>>> 'cara 2
>>> call QueryPerformanceCounte(udtstart)
>>> cells(rows.count,1).end(xlup).offset(1).select
>>> call QueryPerformanceCounte(udtend)
>>> debug.print "cara 2 :
>>> cells(rows.count,1).end(xlup).offset(1).select", _
>>> "Alamat akhir : " & selection.address, _
>>> "Waktu : " &
>>> udtend.highpart-udtstart.highpart & " | " & udtend.lowpart-udtstart.lowpart
>>>
>>> end sub
>>>
>>>
>>> Wassalam,
>>> Kid.
>>>
>>>
>>>
>>>
>>> 2013/4/10 hendrik karnadi <hendrikkarnadi@yahoo.com >
>>>
>>>> **
>>>>
>>>>
>>>> Terima kasih Miss Jan atas koreksinya.
>>>>
>>>> Dengan asumsi Nama terisi penuh (tidak kosong di tengah) maka saya coba
>>>> revisi seperti ini,
>>>>
>>>> Untuk mencari baris baru
>>>> Sub BarBar()
>>>> Columns("A:A").Find(vbNullString).Select
>>>> End Sub
>>>> Yang ini kayaknya cukup pendek, mustinya sdh OK
>>>>
>>>> Untuk mencari Nama tertentu (lengkap, tidak masalah huruf besar kecil)
>>>> Sub RekTtt()
>>>> On Error GoTo Pesan
>>>> skunci = InputBox("Masukkan Nama")
>>>> If skunci <> vbNullString Then Columns("A:A").Find(skunci,
>>>> Lookat:=xlWhole).Activate
>>>> Exit Sub
>>>> Pesan:
>>>> MsgBox "Nama tidak ada", vbInformation, "PESAN"
>>>> End Sub
>>>> Yang ini terpaksa agak panjang supaya logikanya nyambung.
>>>>
>>>> Khusus yang kedua, ada kode yang bisa lebih pendek Miss Jan ?
>>>>
>>>> Salam,
>>>> HK
>>>>
>>>>
>>>> ------------------------------
>>>> *From:* Jan Raisin <miss.jan.raisin@gmail.com >
>>>> *To:* belajar-excel@yahoogroups.com
>>>> *Sent:* Wednesday, 10 April 2013, 14:26
>>>> *Subject:* Re: [belajar-excel] Cari baris baru dan record tertentu
>>>>
>>>>
>>>> pak Hendrik,
>>>>
>>>> untuk script yang ini:
>>>> Sub BarBar()
>>>> Columns("A:A").SpecialCells(xlLastCell).Offset(1, 0).Select
>>>> End Sub
>>>>
>>>> coba lakukan tes seperti ini pada workbook yang baru:
>>>> 1. Buat header di cell A1
>>>> 2. input data manual di cell A2 sampai A20 (sembarang data)
>>>> 3. hapus data mulai cell A2 sampai A20
>>>> 4. jalankan script tadi dan lihat hasilnya
>>>>
>>>> Lalu untuk script yang ini:
>>>> Sub RekTtt()
>>>> Columns("A:A").Find("Sania").Activate
>>>> End Sub
>>>>
>>>> bagaimana jika ternyata tidak ada cell yang berisi kata Sania ?
>>>>
>>>> IMHO,
>>>>
>>>> >> proses select atau activate sebisa mungkin dihindari, karena bisa
>>>> dimanfaatkan untuk proses yang lain
>>>> >> pencarian posisi dengan menggunakan SpecialCell untuk input data
>>>> yang baru kadang menghasilkan data yang tidak tepat.
>>>> >> posisi pencarian record sebaiknya dimasukkan ke dalam variabel
>>>> bertipe range, lalu dilakukan kros cek apakah record tersebut ada atau tidak
>>>>
>>>> ini hanya pendapat pribadi Jan yang masih banyak kekurangannya. jika
>>>> ada yang salah tolong dikoreksi.
>>>>
>>>> Salam,
>>>>
>>>> -Miss Jan Raisin-
>>>>
>>>>
>>>>
>>>> Pada 10 April 2013 13.30, hendrik karnadi <hendrikkarnadi@yahoo.com >menulis:
>>>>
>>>> **
>>>>
>>>> Rekan Be-Exceler,
>>>>
>>>> Dalam database kita sering dihadapkan pada dua hal, yaitu:
>>>> - Mencari baris baru untuk input data baru
>>>> - Mencari record tertentu dari data yang sudah ada, mis. untuk diedit
>>>>
>>>> Biasanya/sering kita gunakan Offset(Tabel.Rows.Count+1,.....) atau
>>>> .......End(xlUp) untuk mencari baris baru dan Find("xyz", Lookin=xlValues)
>>>> untuk mencari record tertentu yang sudah ada.
>>>>
>>>> Untuk mencari baris baru saya gunakan code:
>>>> Sub BarBar()
>>>> Columns("A:A").SpecialCells(xlLastCell).Offset(1, 0).Select
>>>> End Sub
>>>>
>>>> Untuk mencari record tertentu (mis "Sania") saya gunakan code:
>>>> Sub RekTtt()
>>>> Columns("A:A").Find("Sania").Activate
>>>> End Sub
>>>>
>>>> File terlampir.
>>>>
>>>> Pertanyaannya:
>>>> Apakah kedua code tsb mengandung kelemahan?
>>>>
>>>> Salam,
>>>> HK
>>>>
>>>>
>>>>
>>>>
>>>
>>
>
>
hehehe...
ternyata, script yang cepat itu bukan yang paling pendek, tapi yang paling
efisien memilih fungsi dan alur prosesnya.
Jadi, proses berisi 1 fungsi yang dikerjakan 1000 count kalah cepat dengan
proses yang sama yang dikerjakan dengan 20 fungsi yang masing-masing fungsi
hanya butuh 20 count
Wassalam,
Kid.
2013/4/11 Jan Raisin <miss.jan.raisin@
> **
>
>
> mr Kid,
>
> gak jadi xixixix :D
> skripnya udah bisa jalan
>
> cara kedua lebih cepat 8x dibandingkan cara pertama
>
> Wassalam,
>
> -MJR-
>
>
> Pada 11 April 2013 11.26, Jan Raisin <miss.jan.raisin@
>
> mr Kid,
>>
>> waktu scriptnya Jan jalankan, muncul error seperti ini
>> [image: Gambar sisip 2]
>>
>> apa yang salah dengan excel Jan ?
>>
>> Wassalam,
>>
>> -MJR-
>>
>>
>> Pada 11 April 2013 11.19, Mr. Kid <mr.nmkid@gmail.
>>
>> **
>>>
>>>
>>> Bagaimana kalau dicoba pada penerapannya dan dihitung waktunya. Dari
>>> sekian banyak cara yang ada di atas sana tadi, mana yang lebih pas dan
>>> lebih sesuai untuk kondisi dalam contoh penerapan tadi.
>>>
>>> misal
>>> Cara 1 : Columns("
>>> Cara 2 : cells(rows.count,
>>>
>>> buat workbook baru dan isi sheet1 dengan beberapa data di kolom A, B,
>>> maupun C ( banyak baris x 3 kolom)
>>> ke VBE (ALT F11) -> menu Insert -> Module -> copasken :
>>>
>>> private declare function QueryPerformanceCou
>>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
>>> private type LARGE_INTEGER
>>> lowpart as long
>>> highpart as long
>>> end type
>>>
>>> public sub TesBarisBaru(
>>> dim udtStart as large_integer, udtEnd as large_integer
>>>
>>> 'cara 1
>>> call QueryPerformanceCou
>>> Columns("
>>> call QueryPerformanceCou
>>> debug.print "cara 1 : Columns("
>>> _
>>> "Alamat akhir : " & selection.address, _
>>> "Waktu : " &
>>> udtend.highpart-
>>>
>>> 'cara 2
>>> call QueryPerformanceCou
>>> cells(rows.count,
>>> call QueryPerformanceCou
>>> debug.print "cara 2 :
>>> cells(rows.count,
>>> "Alamat akhir : " & selection.address, _
>>> "Waktu : " &
>>> udtend.highpart-
>>>
>>> end sub
>>>
>>>
>>> Wassalam,
>>> Kid.
>>>
>>>
>>>
>>>
>>> 2013/4/10 hendrik karnadi <hendrikkarnadi@
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>
>
Wed Apr 10, 2013 9:35 pm (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
eh... tapi,
(mumpung ada yang nyoba wakakaka)
gimana kalau posisi dibalik,
cara 2 di atas dan cara 1 dibawah
hasilnya seperti apa ya
ty
Wassalam,
Kid.
2013/4/11 Mr. Kid <mr.nmkid@gmail.com >
> oh sudah bisa....
>
> hehehe...
>
> ternyata, script yang cepat itu bukan yang paling pendek, tapi yang paling
> efisien memilih fungsi dan alur prosesnya.
> Jadi, proses berisi 1 fungsi yang dikerjakan 1000 count kalah cepat dengan
> proses yang sama yang dikerjakan dengan 20 fungsi yang masing-masing fungsi
> hanya butuh 20 count
>
> Wassalam,
> Kid.
>
>
>
>
> 2013/4/11 Jan Raisin <miss.jan.raisin@gmail.com >
>
>> **
>>
>>
>> mr Kid,
>>
>> gak jadi xixixix :D
>> skripnya udah bisa jalan
>>
>> cara kedua lebih cepat 8x dibandingkan cara pertama
>>
>> Wassalam,
>>
>> -MJR-
>>
>>
>> Pada 11 April 2013 11.26, Jan Raisin <miss.jan.raisin@gmail.com > menulis:
>>
>> mr Kid,
>>>
>>> waktu scriptnya Jan jalankan, muncul error seperti ini
>>> [image: Gambar sisip 2]
>>>
>>> apa yang salah dengan excel Jan ?
>>>
>>> Wassalam,
>>>
>>> -MJR-
>>>
>>>
>>> Pada 11 April 2013 11.19, Mr. Kid <mr.nmkid@gmail.com > menulis:
>>>
>>> **
>>>>
>>>>
>>>> Bagaimana kalau dicoba pada penerapannya dan dihitung waktunya. Dari
>>>> sekian banyak cara yang ada di atas sana tadi, mana yang lebih pas dan
>>>> lebih sesuai untuk kondisi dalam contoh penerapan tadi.
>>>>
>>>> misal
>>>> Cara 1 : Columns("A:A").Find(vbNullString).Select
>>>> Cara 2 : cells(rows.count,1).end(xlup).offset(1).select
>>>>
>>>> buat workbook baru dan isi sheet1 dengan beberapa data di kolom A, B,
>>>> maupun C ( banyak baris x 3 kolom)
>>>> ke VBE (ALT F11) -> menu Insert -> Module -> copasken :
>>>>
>>>> private declare function QueryPerformanceCounter Lib "kernel32.dll"
>>>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
>>>> private type LARGE_INTEGER
>>>> lowpart as long
>>>> highpart as long
>>>> end type
>>>>
>>>> public sub TesBarisBaru()
>>>> dim udtStart as large_integer, udtEnd as large_integer
>>>>
>>>> 'cara 1
>>>> call QueryPerformanceCounte(udtstart)
>>>> Columns("A:A").Find(vbNullString).Select
>>>> call QueryPerformanceCounte(udtend)
>>>> debug.print "cara 1 : Columns(""A:A"").Find(vbNullString).Select",
>>>> _
>>>> "Alamat akhir : " & selection.address, _
>>>> "Waktu : " &
>>>> udtend.highpart-udtstart.highpart & " | " & udtend.lowpart-udtstart.lowpart
>>>>
>>>> 'cara 2
>>>> call QueryPerformanceCounte(udtstart)
>>>> cells(rows.count,1).end(xlup).offset(1).select
>>>> call QueryPerformanceCounte(udtend)
>>>> debug.print "cara 2 :
>>>> cells(rows.count,1).end(xlup).offset(1).select", _
>>>> "Alamat akhir : " & selection.address, _
>>>> "Waktu : " &
>>>> udtend.highpart-udtstart.highpart & " | " & udtend.lowpart-udtstart.lowpart
>>>>
>>>> end sub
>>>>
>>>>
>>>> Wassalam,
>>>> Kid.
>>>>
>>>>
>>>>
>>>>
>>>> 2013/4/10 hendrik karnadi <hendrikkarnadi@yahoo.com >
>>>>
>>>>> **
>>>>>
>>>>>
>>>>> Terima kasih Miss Jan atas koreksinya.
>>>>>
>>>>> Dengan asumsi Nama terisi penuh (tidak kosong di tengah) maka saya
>>>>> coba revisi seperti ini,
>>>>>
>>>>> Untuk mencari baris baru
>>>>> Sub BarBar()
>>>>> Columns("A:A").Find(vbNullString).Select
>>>>> End Sub
>>>>> Yang ini kayaknya cukup pendek, mustinya sdh OK
>>>>>
>>>>> Untuk mencari Nama tertentu (lengkap, tidak masalah huruf besar kecil)
>>>>> Sub RekTtt()
>>>>> On Error GoTo Pesan
>>>>> skunci = InputBox("Masukkan Nama")
>>>>> If skunci <> vbNullString Then Columns("A:A").Find(skunci,
>>>>> Lookat:=xlWhole).Activate
>>>>> Exit Sub
>>>>> Pesan:
>>>>> MsgBox "Nama tidak ada", vbInformation, "PESAN"
>>>>> End Sub
>>>>> Yang ini terpaksa agak panjang supaya logikanya nyambung.
>>>>>
>>>>> Khusus yang kedua, ada kode yang bisa lebih pendek Miss Jan ?
>>>>>
>>>>> Salam,
>>>>> HK
>>>>>
>>>>>
>>>>> ------------------------------
>>>>> *From:* Jan Raisin <miss.jan.raisin@gmail.com >
>>>>> *To:* belajar-excel@yahoogroups.com
>>>>> *Sent:* Wednesday, 10 April 2013, 14:26
>>>>> *Subject:* Re: [belajar-excel] Cari baris baru dan record tertentu
>>>>>
>>>>>
>>>>> pak Hendrik,
>>>>>
>>>>> untuk script yang ini:
>>>>> Sub BarBar()
>>>>> Columns("A:A").SpecialCells(xlLastCell).Offset(1, 0).Select
>>>>> End Sub
>>>>>
>>>>> coba lakukan tes seperti ini pada workbook yang baru:
>>>>> 1. Buat header di cell A1
>>>>> 2. input data manual di cell A2 sampai A20 (sembarang data)
>>>>> 3. hapus data mulai cell A2 sampai A20
>>>>> 4. jalankan script tadi dan lihat hasilnya
>>>>>
>>>>> Lalu untuk script yang ini:
>>>>> Sub RekTtt()
>>>>> Columns("A:A").Find("Sania").Activate
>>>>> End Sub
>>>>>
>>>>> bagaimana jika ternyata tidak ada cell yang berisi kata Sania ?
>>>>>
>>>>> IMHO,
>>>>>
>>>>> >> proses select atau activate sebisa mungkin dihindari, karena bisa
>>>>> dimanfaatkan untuk proses yang lain
>>>>> >> pencarian posisi dengan menggunakan SpecialCell untuk input data
>>>>> yang baru kadang menghasilkan data yang tidak tepat.
>>>>> >> posisi pencarian record sebaiknya dimasukkan ke dalam variabel
>>>>> bertipe range, lalu dilakukan kros cek apakah record tersebut ada atau tidak
>>>>>
>>>>> ini hanya pendapat pribadi Jan yang masih banyak kekurangannya. jika
>>>>> ada yang salah tolong dikoreksi.
>>>>>
>>>>> Salam,
>>>>>
>>>>> -Miss Jan Raisin-
>>>>>
>>>>>
>>>>>
>>>>> Pada 10 April 2013 13.30, hendrik karnadi <hendrikkarnadi@yahoo.com >menulis:
>>>>>
>>>>> **
>>>>>
>>>>> Rekan Be-Exceler,
>>>>>
>>>>> Dalam database kita sering dihadapkan pada dua hal, yaitu:
>>>>> - Mencari baris baru untuk input data baru
>>>>> - Mencari record tertentu dari data yang sudah ada, mis. untuk diedit
>>>>>
>>>>> Biasanya/sering kita gunakan Offset(Tabel.Rows.Count+1,.....) atau
>>>>> .......End(xlUp) untuk mencari baris baru dan Find("xyz", Lookin=xlValues)
>>>>> untuk mencari record tertentu yang sudah ada.
>>>>>
>>>>> Untuk mencari baris baru saya gunakan code:
>>>>> Sub BarBar()
>>>>> Columns("A:A").SpecialCells(xlLastCell).Offset(1, 0).Select
>>>>> End Sub
>>>>>
>>>>> Untuk mencari record tertentu (mis "Sania") saya gunakan code:
>>>>> Sub RekTtt()
>>>>> Columns("A:A").Find("Sania").Activate
>>>>> End Sub
>>>>>
>>>>> File terlampir.
>>>>>
>>>>> Pertanyaannya:
>>>>> Apakah kedua code tsb mengandung kelemahan?
>>>>>
>>>>> Salam,
>>>>> HK
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>>
>
>
(mumpung ada yang nyoba wakakaka)
gimana kalau posisi dibalik,
cara 2 di atas dan cara 1 dibawah
hasilnya seperti apa ya
ty
Wassalam,
Kid.
2013/4/11 Mr. Kid <mr.nmkid@gmail.
> oh sudah bisa....
>
> hehehe...
>
> ternyata, script yang cepat itu bukan yang paling pendek, tapi yang paling
> efisien memilih fungsi dan alur prosesnya.
> Jadi, proses berisi 1 fungsi yang dikerjakan 1000 count kalah cepat dengan
> proses yang sama yang dikerjakan dengan 20 fungsi yang masing-masing fungsi
> hanya butuh 20 count
>
> Wassalam,
> Kid.
>
>
>
>
> 2013/4/11 Jan Raisin <miss.jan.raisin@
>
>> **
>>
>>
>> mr Kid,
>>
>> gak jadi xixixix :D
>> skripnya udah bisa jalan
>>
>> cara kedua lebih cepat 8x dibandingkan cara pertama
>>
>> Wassalam,
>>
>> -MJR-
>>
>>
>> Pada 11 April 2013 11.26, Jan Raisin <miss.jan.raisin@
>>
>> mr Kid,
>>>
>>> waktu scriptnya Jan jalankan, muncul error seperti ini
>>> [image: Gambar sisip 2]
>>>
>>> apa yang salah dengan excel Jan ?
>>>
>>> Wassalam,
>>>
>>> -MJR-
>>>
>>>
>>> Pada 11 April 2013 11.19, Mr. Kid <mr.nmkid@gmail.
>>>
>>> **
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>
>
Wed Apr 10, 2013 9:44 pm (PDT) . Posted by:
"Jan Raisin"
tetap lebih cepat cara 2 mr. Kid
tapi gini:
cara 1 di atas hasilnya: cara 2 lebih cepat 8x
cara 2 di atas hasilnya: cara 2 lebih cepat 4x
kenapa bisa beda begitu ya? padahal berjalan di mesin yang sama
os : Win7 Ultimate 32-bit
proc : corei5 2,3Ghz
Ram : 2GB
excel: 2K10
mungkin bisa dijelaskan mr.. sekalian tanya gimana cara kok tau harus
memilih script ini:
private declare function QueryPerformanceCounter Lib "kernel32.dll" (ByRef
lpPerformanceCount As LARGE_INTEGER) As Long
Wassalam,
-MJR-
Pada 11 April 2013 11.35, Mr. Kid <mr.nmkid@gmail.com > menulis:
> **
>
>
> eh... tapi,
> (mumpung ada yang nyoba wakakaka)
>
> gimana kalau posisi dibalik,
> cara 2 di atas dan cara 1 dibawah
> hasilnya seperti apa ya
>
> ty
>
> Wassalam,
> Kid
>
tapi gini:
cara 1 di atas hasilnya: cara 2 lebih cepat 8x
cara 2 di atas hasilnya: cara 2 lebih cepat 4x
kenapa bisa beda begitu ya? padahal berjalan di mesin yang sama
os : Win7 Ultimate 32-bit
proc : corei5 2,3Ghz
Ram : 2GB
excel: 2K10
mungkin bisa dijelaskan mr.. sekalian tanya gimana cara kok tau harus
memilih script ini:
private declare function QueryPerformanceCou
lpPerformanceCount As LARGE_INTEGER) As Long
Wassalam,
-MJR-
Pada 11 April 2013 11.35, Mr. Kid <mr.nmkid@gmail.
> **
>
>
> eh... tapi,
> (mumpung ada yang nyoba wakakaka)
>
> gimana kalau posisi dibalik,
> cara 2 di atas dan cara 1 dibawah
> hasilnya seperti apa ya
>
> ty
>
> Wassalam,
> Kid
>
Wed Apr 10, 2013 10:11 pm (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
kenapa bisa beda begitu ya? padahal berjalan di mesin yang sama
>> bisa jadi, untuk awal kegiatan, akan ada banyak penyesuaian dan
inisialisasi didalam sana. saya ndak tahu persis apa saja yang terjadi.
Anggap saja sebuah pengkondisian.
mungkin bisa dijelaskan mr.. sekalian tanya gimana cara kok tau harus
memilih script ini:
private declare function QueryPerformanceCounter Lib "kernel32.dll" (ByRef
lpPerformanceCount As LARGE_INTEGER) As Long
>> hehehehe... kalo dijawab hafalan pasti ndak terima.
kira-kira gini :
1. waktu itu ada dua sisi, yaitu sisi makro dan sisi mikro.
Sisi makro adalah dari tahun sampai ketepatan 1 detik
Sisi mikro adalah antara 0 dan 1 detik.
Jadi, untuk menghitung waktu proses yang sangat cepat, perlu ketepatan yang
tinggi, yaitu di sisi mikro
2. rentang dari 0 sampai 1 detik itu bisa dipecah menjadi banyak, misal per
milidetik,mikro detik, atau nanodetik, dsb.
3. Biasanya, untuk sisi mikro ini akan dimulai dengan penggunaan timer
seperti :
dim dblTime as double
dbltime=timer
'proses
dbltime=timer-dbltime
debug.print "waktu proses : " & dbltime & " detik"
Coba lihat hasilnya, ada angka didepan koma (detik) dan dibelakang koma
(bisa sampai milidetik)
Yang perlu dipahami adalah lompatan dari satu tik waktu ke tik waktu
berikutnya tidaklah per 1 milidetik, melainkan bisa mencapai 55 milidetik
4. Yang lebih tinggi dari timer adalah GetTickCount, hanya saja kadang kala
lompatan tik ke tik nya bisa 55 milidetik juga walau biasanya 10 milidetik.
Fungsi ini adalah fungsi WinAPI dan silakan cari di internet tentang detil
duduk perkara si GetTickCount ini.
5. Yang lebih tinggi lagi dari GetTickCount adalah yang sampai pada sedekat
mungkin menghitung clock komputer.
Masih ingat bukan bahwa clock komputer seperti 2.3GHz artinya ada 2.3G tik
per detik.
Jadi, jika bisa mendapatkan nilai waktu dari satu tik ke tik berikutnya
yang sangat rapat, maka pastilah harus yang mendekati frekuensi clock
komputer tadi.
Fungsi QueryPerformanceCounter adalah yang paling mendekatinya, karena bisa
sampai mencatat 1.000.000.000 tik per detiknya.
5. Jadi, dengan bekal keinginan untuk tahu cara membaca tik komputer
setepat mungkin, maka akan bertemulah dengan fungsi QueryPerformanceCounter
6. Fungsi QueryPerformanceCounter punya teman namanya
QueryPerformanceFrequency
Karena ada Frequency nya, berarti yang dihitung bukan tik nya tapi
frekuensi per detik.
Jika diterapkan pada kasus tadi, maka yang didapat adalah nilai frekuensi
nya.
Nah kalau counternya 1000000000 tik per detik, maka kalau cara 1 diproses
sebanyak 1000 tik, maka frekuensinya 1000/1000000000
hehehe bakal ruwet bacanya kali ya....
kira-kira demikianlah...
Wassalam,
Kid.
2013/4/11 Jan Raisin <miss.jan.raisin@gmail.com >
> **
>
>
> tetap lebih cepat cara 2 mr. Kid
>
> tapi gini:
> cara 1 di atas hasilnya: cara 2 lebih cepat 8x
> cara 2 di atas hasilnya: cara 2 lebih cepat 4x
>
> kenapa bisa beda begitu ya? padahal berjalan di mesin yang sama
> os : Win7 Ultimate 32-bit
> proc : corei5 2,3Ghz
> Ram : 2GB
> excel: 2K10
>
> mungkin bisa dijelaskan mr.. sekalian tanya gimana cara kok tau harus
> memilih script ini:
> private declare function QueryPerformanceCounter Lib "kernel32.dll" (ByRef
> lpPerformanceCount As LARGE_INTEGER) As Long
>
> Wassalam,
>
> -MJR-
>
>
>
> Pada 11 April 2013 11.35, Mr. Kid <mr.nmkid@gmail.com > menulis:
>
> **
>>
>>
>> eh... tapi,
>> (mumpung ada yang nyoba wakakaka)
>>
>> gimana kalau posisi dibalik,
>> cara 2 di atas dan cara 1 dibawah
>> hasilnya seperti apa ya
>>
>> ty
>>
>> Wassalam,
>> Kid
>>
>
>
>> bisa jadi, untuk awal kegiatan, akan ada banyak penyesuaian dan
inisialisasi didalam sana. saya ndak tahu persis apa saja yang terjadi.
Anggap saja sebuah pengkondisian.
mungkin bisa dijelaskan mr.. sekalian tanya gimana cara kok tau harus
memilih script ini:
private declare function QueryPerformanceCou
lpPerformanceCount As LARGE_INTEGER) As Long
>> hehehehe... kalo dijawab hafalan pasti ndak terima.
kira-kira gini :
1. waktu itu ada dua sisi, yaitu sisi makro dan sisi mikro.
Sisi makro adalah dari tahun sampai ketepatan 1 detik
Sisi mikro adalah antara 0 dan 1 detik.
Jadi, untuk menghitung waktu proses yang sangat cepat, perlu ketepatan yang
tinggi, yaitu di sisi mikro
2. rentang dari 0 sampai 1 detik itu bisa dipecah menjadi banyak, misal per
milidetik,mikro detik, atau nanodetik, dsb.
3. Biasanya, untuk sisi mikro ini akan dimulai dengan penggunaan timer
seperti :
dim dblTime as double
dbltime=timer
'proses
dbltime=timer-
debug.print "waktu proses : " & dbltime & " detik"
Coba lihat hasilnya, ada angka didepan koma (detik) dan dibelakang koma
(bisa sampai milidetik)
Yang perlu dipahami adalah lompatan dari satu tik waktu ke tik waktu
berikutnya tidaklah per 1 milidetik, melainkan bisa mencapai 55 milidetik
4. Yang lebih tinggi dari timer adalah GetTickCount, hanya saja kadang kala
lompatan tik ke tik nya bisa 55 milidetik juga walau biasanya 10 milidetik.
Fungsi ini adalah fungsi WinAPI dan silakan cari di internet tentang detil
duduk perkara si GetTickCount ini.
5. Yang lebih tinggi lagi dari GetTickCount adalah yang sampai pada sedekat
mungkin menghitung clock komputer.
Masih ingat bukan bahwa clock komputer seperti 2.3GHz artinya ada 2.3G tik
per detik.
Jadi, jika bisa mendapatkan nilai waktu dari satu tik ke tik berikutnya
yang sangat rapat, maka pastilah harus yang mendekati frekuensi clock
komputer tadi.
Fungsi QueryPerformanceCou
sampai mencatat 1.000.000.000 tik per detiknya.
5. Jadi, dengan bekal keinginan untuk tahu cara membaca tik komputer
setepat mungkin, maka akan bertemulah dengan fungsi QueryPerformanceCou
6. Fungsi QueryPerformanceCou
QueryPerformanceFre
Karena ada Frequency nya, berarti yang dihitung bukan tik nya tapi
frekuensi per detik.
Jika diterapkan pada kasus tadi, maka yang didapat adalah nilai frekuensi
nya.
Nah kalau counternya 1000000000 tik per detik, maka kalau cara 1 diproses
sebanyak 1000 tik, maka frekuensinya 1000/1000000000
hehehe bakal ruwet bacanya kali ya....
kira-kira demikianlah.
Wassalam,
Kid.
2013/4/11 Jan Raisin <miss.jan.raisin@
> **
>
>
> tetap lebih cepat cara 2 mr. Kid
>
> tapi gini:
> cara 1 di atas hasilnya: cara 2 lebih cepat 8x
> cara 2 di atas hasilnya: cara 2 lebih cepat 4x
>
> kenapa bisa beda begitu ya? padahal berjalan di mesin yang sama
> os : Win7 Ultimate 32-bit
> proc : corei5 2,3Ghz
> Ram : 2GB
> excel: 2K10
>
> mungkin bisa dijelaskan mr.. sekalian tanya gimana cara kok tau harus
> memilih script ini:
> private declare function QueryPerformanceCou
> lpPerformanceCount As LARGE_INTEGER) As Long
>
> Wassalam,
>
> -MJR-
>
>
>
> Pada 11 April 2013 11.35, Mr. Kid <mr.nmkid@gmail.
>
> **
>>
>>
>> eh... tapi,
>> (mumpung ada yang nyoba wakakaka)
>>
>> gimana kalau posisi dibalik,
>> cara 2 di atas dan cara 1 dibawah
>> hasilnya seperti apa ya
>>
>> ty
>>
>> Wassalam,
>> Kid
>>
>
>
Wed Apr 10, 2013 10:14 pm (PDT) . Posted by:
"summonery" summonery
Setuju dengan Mr. Kid,
O iya, bisa dicoba bagaimana hasilnya pada last rownya kecil vs last
rownya besar,,Misal performa script pada data dengan jumlah row=5
dibandingkan performa script pada data dengan row=1000000
Nambahin scriptnya ah,, 2
saja:Columns(1).Find("").SelectCells(Rows.Count,
1).End(3).Offset(1).Select
>semoga bermanfaat
--- In belajar-excel@yahoogroups.com , "Mr. Kid" <mr.nmkid@...> wrote:
>
> oh sudah bisa....
>
> hehehe...
>
> ternyata, script yang cepat itu bukan yang paling pendek, tapi yang
paling
> efisien memilih fungsi dan alur prosesnya.
> Jadi, proses berisi 1 fungsi yang dikerjakan 1000 count kalah cepat
dengan
> proses yang sama yang dikerjakan dengan 20 fungsi yang masing-masing
fungsi
> hanya butuh 20 count
>
> Wassalam,
> Kid.
>
>
>
>
> 2013/4/11 Jan Raisin miss.jan.raisin@...
>
> > **
> >
> >
> > mr Kid,
> >
> > gak jadi xixixix :D
> > skripnya udah bisa jalan
> >
> > cara kedua lebih cepat 8x dibandingkan cara pertama
> >
> > Wassalam,
> >
> > -MJR-
> >
> >
> > Pada 11 April 2013 11.26, Jan Raisin miss.jan.raisin@... menulis:
> >
> > mr Kid,
> >>
> >> waktu scriptnya Jan jalankan, muncul error seperti ini
> >> [image: Gambar sisip 2]
> >>
> >> apa yang salah dengan excel Jan ?
> >>
> >> Wassalam,
> >>
> >> -MJR-
> >>
> >>
> >> Pada 11 April 2013 11.19, Mr. Kid mr.nmkid@... menulis:
> >>
> >> **
> >>>
> >>>
> >>> Bagaimana kalau dicoba pada penerapannya dan dihitung waktunya.
Dari
> >>> sekian banyak cara yang ada di atas sana tadi, mana yang lebih pas
dan
> >>> lebih sesuai untuk kondisi dalam contoh penerapan tadi.
> >>>
> >>> misal
> >>> Cara 1 : Columns("A:A").Find(vbNullString).Select
> >>> Cara 2 : cells(rows.count,1).end(xlup).offset(1).select
> >>>
> >>> buat workbook baru dan isi sheet1 dengan beberapa data di kolom A,
B,
> >>> maupun C ( banyak baris x 3 kolom)
> >>> ke VBE (ALT F11) -> menu Insert -> Module -> copasken :
> >>>
> >>> private declare function QueryPerformanceCounter Lib
"kernel32.dll"
> >>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
> >>> private type LARGE_INTEGER
> >>> lowpart as long
> >>> highpart as long
> >>> end type
> >>>
> >>> public sub TesBarisBaru()
> >>> dim udtStart as large_integer, udtEnd as large_integer
> >>>
> >>> 'cara 1
> >>> call QueryPerformanceCounte(udtstart)
> >>> Columns("A:A").Find(vbNullString).Select
> >>> call QueryPerformanceCounte(udtend)
> >>> debug.print "cara 1 :
Columns(""A:A"").Find(vbNullString).Select",
> >>> _
> >>> "Alamat akhir : " & selection.address,
_
> >>> "Waktu : " &
> >>> udtend.highpart-udtstart.highpart & " | " &
udtend.lowpart-udtstart.lowpart
> >>>
> >>> 'cara 2
> >>> call QueryPerformanceCounte(udtstart)
> >>> cells(rows.count,1).end(xlup).offset(1).select
> >>> call QueryPerformanceCounte(udtend)
> >>> debug.print "cara 2 :
> >>> cells(rows.count,1).end(xlup).offset(1).select", _
> >>> "Alamat akhir : " & selection.address,
_
> >>> "Waktu : " &
> >>> udtend.highpart-udtstart.highpart & " | " &
udtend.lowpart-udtstart.lowpart
> >>>
> >>> end sub
> >>>
> >>>
> >>> Wassalam,
> >>> Kid.
> >>>
> >>>
> >>>
> >>>
> >>> 2013/4/10 hendrik karnadi hendrikkarnadi@...
> >>>
> >>>> **
> >>>>
> >>>>
> >>>> Terima kasih Miss Jan atas koreksinya.
> >>>>
> >>>> Dengan asumsi Nama terisi penuh (tidak kosong di tengah) maka
saya coba
> >>>> revisi seperti ini,
> >>>>
> >>>> Untuk mencari baris baru
> >>>> Sub BarBar()
> >>>> Columns("A:A").Find(vbNullString).Select
> >>>> End Sub
> >>>> Yang ini kayaknya cukup pendek, mustinya sdh OK
> >>>>
> >>>> Untuk mencari Nama tertentu (lengkap, tidak masalah huruf besar
kecil)
> >>>> Sub RekTtt()
> >>>> On Error GoTo Pesan
> >>>> skunci = InputBox("Masukkan Nama")
> >>>> If skunci <> vbNullString Then Columns("A:A").Find(skunci,
> >>>> Lookat:=xlWhole).Activate
> >>>> Exit Sub
> >>>> Pesan:
> >>>> MsgBox "Nama tidak ada", vbInformation, "PESAN"
> >>>> End Sub
> >>>> Yang ini terpaksa agak panjang supaya logikanya nyambung.
> >>>>
> >>>> Khusus yang kedua, ada kode yang bisa lebih pendek Miss Jan ?
> >>>>
> >>>> Salam,
> >>>> HK
> >>>>
> >>>>
> >>>> ------------------------------
> >>>> *From:* Jan Raisin miss.jan.raisin@...
> >>>> *To:* belajar-excel@yahoogroups.com
> >>>> *Sent:* Wednesday, 10 April 2013, 14:26
> >>>> *Subject:* Re: [belajar-excel] Cari baris baru dan record
tertentu
> >>>>
> >>>>
> >>>> pak Hendrik,
> >>>>
> >>>> untuk script yang ini:
> >>>> Sub BarBar()
> >>>> Columns("A:A").SpecialCells(xlLastCell).Offset(1, 0).Select
> >>>> End Sub
> >>>>
> >>>> coba lakukan tes seperti ini pada workbook yang baru:
> >>>> 1. Buat header di cell A1
> >>>> 2. input data manual di cell A2 sampai A20 (sembarang data)
> >>>> 3. hapus data mulai cell A2 sampai A20
> >>>> 4. jalankan script tadi dan lihat hasilnya
> >>>>
> >>>> Lalu untuk script yang ini:
> >>>> Sub RekTtt()
> >>>> Columns("A:A").Find("Sania").Activate
> >>>> End Sub
> >>>>
> >>>> bagaimana jika ternyata tidak ada cell yang berisi kata Sania ?
> >>>>
> >>>> IMHO,
> >>>>
> >>>> >> proses select atau activate sebisa mungkin dihindari, karena
bisa
> >>>> dimanfaatkan untuk proses yang lain
> >>>> >> pencarian posisi dengan menggunakan SpecialCell untuk input
data
> >>>> yang baru kadang menghasilkan data yang tidak tepat.
> >>>> >> posisi pencarian record sebaiknya dimasukkan ke dalam variabel
> >>>> bertipe range, lalu dilakukan kros cek apakah record tersebut ada
atau tidak
> >>>>
> >>>> ini hanya pendapat pribadi Jan yang masih banyak kekurangannya.
jika
> >>>> ada yang salah tolong dikoreksi.
> >>>>
> >>>> Salam,
> >>>>
> >>>> -Miss Jan Raisin-
> >>>>
> >>>>
> >>>>
> >>>> Pada 10 April 2013 13.30, hendrik karnadi
hendrikkarnadi@...menulis:
> >>>>
> >>>> **
> >>>>
> >>>> Rekan Be-Exceler,
> >>>>
> >>>> Dalam database kita sering dihadapkan pada dua hal, yaitu:
> >>>> - Mencari baris baru untuk input data baru
> >>>> - Mencari record tertentu dari data yang sudah ada, mis. untuk
diedit
> >>>>
> >>>> Biasanya/sering kita gunakan Offset(Tabel.Rows.Count+1,.....)
atau
> >>>> .......End(xlUp) untuk mencari baris baru dan Find("xyz",
Lookin=xlValues)
> >>>> untuk mencari record tertentu yang sudah ada.
> >>>>
> >>>> Untuk mencari baris baru saya gunakan code:
> >>>> Sub BarBar()
> >>>> Columns("A:A").SpecialCells(xlLastCell).Offset(1, 0).Select
> >>>> End Sub
> >>>>
> >>>> Untuk mencari record tertentu (mis "Sania") saya gunakan code:
> >>>> Sub RekTtt()
> >>>> Columns("A:A").Find("Sania").Activate
> >>>> End Sub
> >>>>
> >>>> File terlampir.
> >>>>
> >>>> Pertanyaannya:
> >>>> Apakah kedua code tsb mengandung kelemahan?
> >>>>
> >>>> Salam,
> >>>> HK
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>
> >
> >
>
O iya, bisa dicoba bagaimana hasilnya pada last rownya kecil vs last
rownya besar,,Misal performa script pada data dengan jumlah row=5
dibandingkan performa script pada data dengan row=1000000
Nambahin scriptnya ah,, 2
saja:Columns(
1).End(3).Offset(
>semoga bermanfaat
--- In belajar-excel@
>
> oh sudah bisa....
>
> hehehe...
>
> ternyata, script yang cepat itu bukan yang paling pendek, tapi yang
paling
> efisien memilih fungsi dan alur prosesnya.
> Jadi, proses berisi 1 fungsi yang dikerjakan 1000 count kalah cepat
dengan
> proses yang sama yang dikerjakan dengan 20 fungsi yang masing-masing
fungsi
> hanya butuh 20 count
>
> Wassalam,
> Kid.
>
>
>
>
> 2013/4/11 Jan Raisin miss.jan.raisin@
>
> > **
> >
> >
> > mr Kid,
> >
> > gak jadi xixixix :D
> > skripnya udah bisa jalan
> >
> > cara kedua lebih cepat 8x dibandingkan cara pertama
> >
> > Wassalam,
> >
> > -MJR-
> >
> >
> > Pada 11 April 2013 11.26, Jan Raisin miss.jan.raisin@
> >
> > mr Kid,
> >>
> >> waktu scriptnya Jan jalankan, muncul error seperti ini
> >> [image: Gambar sisip 2]
> >>
> >> apa yang salah dengan excel Jan ?
> >>
> >> Wassalam,
> >>
> >> -MJR-
> >>
> >>
> >> Pada 11 April 2013 11.19, Mr. Kid mr.nmkid@... menulis:
> >>
> >> **
> >>>
> >>>
> >>> Bagaimana kalau dicoba pada penerapannya dan dihitung waktunya.
Dari
> >>> sekian banyak cara yang ada di atas sana tadi, mana yang lebih pas
dan
> >>> lebih sesuai untuk kondisi dalam contoh penerapan tadi.
> >>>
> >>> misal
> >>> Cara 1 : Columns("
> >>> Cara 2 : cells(rows.count,
> >>>
> >>> buat workbook baru dan isi sheet1 dengan beberapa data di kolom A,
B,
> >>> maupun C ( banyak baris x 3 kolom)
> >>> ke VBE (ALT F11) -> menu Insert -> Module -> copasken :
> >>>
> >>> private declare function QueryPerformanceCou
"kernel32.
> >>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
> >>> private type LARGE_INTEGER
> >>> lowpart as long
> >>> highpart as long
> >>> end type
> >>>
> >>> public sub TesBarisBaru(
> >>> dim udtStart as large_integer, udtEnd as large_integer
> >>>
> >>> 'cara 1
> >>> call QueryPerformanceCou
> >>> Columns("
> >>> call QueryPerformanceCou
> >>> debug.print "cara 1 :
Columns("
> >>> _
> >>> "Alamat akhir : " & selection.address,
_
> >>> "Waktu : " &
> >>> udtend.highpart-
udtend.lowpart-
> >>>
> >>> 'cara 2
> >>> call QueryPerformanceCou
> >>> cells(rows.count,
> >>> call QueryPerformanceCou
> >>> debug.print "cara 2 :
> >>> cells(rows.count,
> >>> "Alamat akhir : " & selection.address,
_
> >>> "Waktu : " &
> >>> udtend.highpart-
udtend.lowpart-
> >>>
> >>> end sub
> >>>
> >>>
> >>> Wassalam,
> >>> Kid.
> >>>
> >>>
> >>>
> >>>
> >>> 2013/4/10 hendrik karnadi hendrikkarnadi@
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
saya coba
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
kecil)
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
tertentu
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
bisa
> >>>
> >>>
data
> >>>
> >>>
> >>>
atau tidak
> >>>
> >>>
jika
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
hendrikkarnadi@
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
diedit
> >>>
> >>>
atau
> >>>
Lookin=xlValues)
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>
> >
> >
>
Wed Apr 10, 2013 10:21 pm (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
yup... perlu diuji untuk perbedaan jumlah record juga.
Kalau perlu juga cara 3 pakai script Pak Anton yang Find dan cara 4 pakai
script End(3)
Atau disummary dalam 1 sheet aja kali ya semuanya (tinggal ganti script
bagian debug.print kan ya)
(hehehe... bener-bener merepotkan miss Jan dah nih... itung-itung amal ya
miss)
Wassalam,
Kid.
2013/4/11 summonery <summonery@yahoo.com >
> **
>
>
> Setuju dengan Mr. Kid,
>
> O iya, bisa dicoba bagaimana hasilnya pada last rownya kecil vs last
> rownya besar,,
> Misal performa script pada data dengan jumlah row=5 dibandingkan performa
> script pada data dengan row=1000000
>
> Nambahin scriptnya ah,, 2 saja:
> Columns(1).Find("").Select
> Cells(Rows.Count, 1).End(3).Offset(1).Select
>
>
> >semoga bermanfaat
>
>
> --- In belajar-excel@yahoogroups.com , "Mr. Kid" <mr.nmkid@...> wrote:
> >
> > oh sudah bisa....
> >
> > hehehe...
> >
> > ternyata, script yang cepat itu bukan yang paling pendek, tapi yang
> paling
> > efisien memilih fungsi dan alur prosesnya.
> > Jadi, proses berisi 1 fungsi yang dikerjakan 1000 count kalah cepat
> dengan
> > proses yang sama yang dikerjakan dengan 20 fungsi yang masing-masing
> fungsi
> > hanya butuh 20 count
> >
> > Wassalam,
> > Kid.
> >
> >
> >
> >
> > 2013/4/11 Jan Raisin miss.jan.raisin@...
> >
> > > **
>
> > >
> > >
> > > mr Kid,
> > >
> > > gak jadi xixixix :D
> > > skripnya udah bisa jalan
> > >
> > > cara kedua lebih cepat 8x dibandingkan cara pertama
> > >
> > > Wassalam,
> > >
> > > -MJR-
> > >
> > >
> > > Pada 11 April 2013 11.26, Jan Raisin miss.jan.raisin@... menulis:
>
> > >
> > > mr Kid,
> > >>
> > >> waktu scriptnya Jan jalankan, muncul error seperti ini
> > >> [image: Gambar sisip 2]
> > >>
> > >> apa yang salah dengan excel Jan ?
> > >>
> > >> Wassalam,
> > >>
> > >> -MJR-
> > >>
> > >>
> > >> Pada 11 April 2013 11.19, Mr. Kid mr.nmkid@... menulis:
> > >>
> > >> **
>
> > >>>
> > >>>
> > >>> Bagaimana kalau dicoba pada penerapannya dan dihitung waktunya. Dari
> > >>> sekian banyak cara yang ada di atas sana tadi, mana yang lebih pas
> dan
> > >>> lebih sesuai untuk kondisi dalam contoh penerapan tadi.
> > >>>
> > >>> misal
> > >>> Cara 1 : Columns("A:A").Find(vbNullString).Select
> > >>> Cara 2 : cells(rows.count,1).end(xlup).offset(1).select
> > >>>
> > >>> buat workbook baru dan isi sheet1 dengan beberapa data di kolom A, B,
> > >>> maupun C ( banyak baris x 3 kolom)
> > >>> ke VBE (ALT F11) -> menu Insert -> Module -> copasken :
> > >>>
> > >>> private declare function QueryPerformanceCounter Lib "kernel32.dll"
> > >>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
> > >>> private type LARGE_INTEGER
> > >>> lowpart as long
> > >>> highpart as long
> > >>> end type
> > >>>
> > >>> public sub TesBarisBaru()
> > >>> dim udtStart as large_integer, udtEnd as large_integer
> > >>>
> > >>> 'cara 1
> > >>> call QueryPerformanceCounte(udtstart)
> > >>> Columns("A:A").Find(vbNullString).Select
> > >>> call QueryPerformanceCounte(udtend)
> > >>> debug.print "cara 1 : Columns(""A:A"").Find(vbNullString).Select",
> > >>> _
> > >>> "Alamat akhir : " & selection.address, _
> > >>> "Waktu : " &
> > >>> udtend.highpart-udtstart.highpart & " | " &
> udtend.lowpart-udtstart.lowpart
> > >>>
> > >>> 'cara 2
> > >>> call QueryPerformanceCounte(udtstart)
> > >>> cells(rows.count,1).end(xlup).offset(1).select
> > >>> call QueryPerformanceCounte(udtend)
> > >>> debug.print "cara 2 :
> > >>> cells(rows.count,1).end(xlup).offset(1).select", _
> > >>> "Alamat akhir : " & selection.address, _
> > >>> "Waktu : " &
> > >>> udtend.highpart-udtstart.highpart & " | " &
> udtend.lowpart-udtstart.lowpart
> > >>>
> > >>> end sub
> > >>>
> > >>>
> > >>> Wassalam,
> > >>> Kid.
> > >>>
> > >>>
> > >>>
> > >>>
> > >>> 2013/4/10 hendrik karnadi hendrikkarnadi@...
> > >>>
> > >>>> **
>
> > >>>>
> > >>>>
> > >>>> Terima kasih Miss Jan atas koreksinya.
> > >>>>
> > >>>> Dengan asumsi Nama terisi penuh (tidak kosong di tengah) maka saya
> coba
> > >>>> revisi seperti ini,
> > >>>>
> > >>>> Untuk mencari baris baru
> > >>>> Sub BarBar()
> > >>>> Columns("A:A").Find(vbNullString).Select
> > >>>> End Sub
> > >>>> Yang ini kayaknya cukup pendek, mustinya sdh OK
> > >>>>
> > >>>> Untuk mencari Nama tertentu (lengkap, tidak masalah huruf besar
> kecil)
> > >>>> Sub RekTtt()
> > >>>> On Error GoTo Pesan
> > >>>> skunci = InputBox("Masukkan Nama")
> > >>>> If skunci <> vbNullString Then Columns("A:A").Find(skunci,
> > >>>> Lookat:=xlWhole).Activate
> > >>>> Exit Sub
> > >>>> Pesan:
> > >>>> MsgBox "Nama tidak ada", vbInformation, "PESAN"
> > >>>> End Sub
> > >>>> Yang ini terpaksa agak panjang supaya logikanya nyambung.
> > >>>>
> > >>>> Khusus yang kedua, ada kode yang bisa lebih pendek Miss Jan ?
> > >>>>
> > >>>> Salam,
> > >>>> HK
> > >>>>
> > >>>>
> > >>>> ------------------------------
> > >>>> *From:* Jan Raisin miss.jan.raisin@...
> > >>>> *To:* belajar-excel@yahoogroups.com
> > >>>> *Sent:* Wednesday, 10 April 2013, 14:26
> > >>>> *Subject:* Re: [belajar-excel] Cari baris baru dan record tertentu
>
> > >>>>
> > >>>>
> > >>>> pak Hendrik,
> > >>>>
> > >>>> untuk script yang ini:
> > >>>> Sub BarBar()
> > >>>> Columns("A:A").SpecialCells(xlLastCell).Offset(1, 0).Select
> > >>>> End Sub
> > >>>>
> > >>>> coba lakukan tes seperti ini pada workbook yang baru:
> > >>>> 1. Buat header di cell A1
> > >>>> 2. input data manual di cell A2 sampai A20 (sembarang data)
> > >>>> 3. hapus data mulai cell A2 sampai A20
> > >>>> 4. jalankan script tadi dan lihat hasilnya
> > >>>>
> > >>>> Lalu untuk script yang ini:
> > >>>> Sub RekTtt()
> > >>>> Columns("A:A").Find("Sania").Activate
> > >>>> End Sub
> > >>>>
> > >>>> bagaimana jika ternyata tidak ada cell yang berisi kata Sania ?
> > >>>>
> > >>>> IMHO,
> > >>>>
> > >>>> >> proses select atau activate sebisa mungkin dihindari, karena bisa
> > >>>> dimanfaatkan untuk proses yang lain
> > >>>> >> pencarian posisi dengan menggunakan SpecialCell untuk input data
> > >>>> yang baru kadang menghasilkan data yang tidak tepat.
> > >>>> >> posisi pencarian record sebaiknya dimasukkan ke dalam variabel
> > >>>> bertipe range, lalu dilakukan kros cek apakah record tersebut ada
> atau tidak
> > >>>>
> > >>>> ini hanya pendapat pribadi Jan yang masih banyak kekurangannya. jika
> > >>>> ada yang salah tolong dikoreksi.
> > >>>>
> > >>>> Salam,
> > >>>>
> > >>>> -Miss Jan Raisin-
> > >>>>
> > >>>>
> > >>>>
> > >>>> Pada 10 April 2013 13.30, hendrik karnadi hendrikkarnadi@
> ...menulis:
> > >>>>
> > >>>> **
>
> > >>>>
> > >>>> Rekan Be-Exceler,
> > >>>>
> > >>>> Dalam database kita sering dihadapkan pada dua hal, yaitu:
> > >>>> - Mencari baris baru untuk input data baru
> > >>>> - Mencari record tertentu dari data yang sudah ada, mis. untuk
> diedit
> > >>>>
> > >>>> Biasanya/sering kita gunakan Offset(Tabel.Rows.Count+1,.....) atau
> > >>>> .......End(xlUp) untuk mencari baris baru dan Find("xyz",
> Lookin=xlValues)
> > >>>> untuk mencari record tertentu yang sudah ada.
> > >>>>
> > >>>> Untuk mencari baris baru saya gunakan code:
> > >>>> Sub BarBar()
> > >>>> Columns("A:A").SpecialCells(xlLastCell).Offset(1, 0).Select
> > >>>> End Sub
> > >>>>
> > >>>> Untuk mencari record tertentu (mis "Sania") saya gunakan code:
> > >>>> Sub RekTtt()
> > >>>> Columns("A:A").Find("Sania").Activate
> > >>>> End Sub
> > >>>>
> > >>>> File terlampir.
> > >>>>
> > >>>> Pertanyaannya:
> > >>>> Apakah kedua code tsb mengandung kelemahan?
> > >>>>
> > >>>> Salam,
> > >>>> HK
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>
> > >>
> > >
> > >
> >
>
>
>
Kalau perlu juga cara 3 pakai script Pak Anton yang Find dan cara 4 pakai
script End(3)
Atau disummary dalam 1 sheet aja kali ya semuanya (tinggal ganti script
bagian debug.print kan ya)
(hehehe... bener-bener merepotkan miss Jan dah nih... itung-itung amal ya
miss)
Wassalam,
Kid.
2013/4/11 summonery <summonery@yahoo.
> **
>
>
> Setuju dengan Mr. Kid,
>
> O iya, bisa dicoba bagaimana hasilnya pada last rownya kecil vs last
> rownya besar,,
> Misal performa script pada data dengan jumlah row=5 dibandingkan performa
> script pada data dengan row=1000000
>
> Nambahin scriptnya ah,, 2 saja:
> Columns(1).Find(
> Cells(Rows.Count, 1).End(3).Offset(
>
>
> >semoga bermanfaat
>
>
> --- In belajar-excel@
> >
> > oh sudah bisa....
> >
> > hehehe...
> >
> > ternyata, script yang cepat itu bukan yang paling pendek, tapi yang
> paling
> > efisien memilih fungsi dan alur prosesnya.
> > Jadi, proses berisi 1 fungsi yang dikerjakan 1000 count kalah cepat
> dengan
> > proses yang sama yang dikerjakan dengan 20 fungsi yang masing-masing
> fungsi
> > hanya butuh 20 count
> >
> > Wassalam,
> > Kid.
> >
> >
> >
> >
> > 2013/4/11 Jan Raisin miss.jan.raisin@
> >
> > > **
>
> > >
> > >
> > > mr Kid,
> > >
> > > gak jadi xixixix :D
> > > skripnya udah bisa jalan
> > >
> > > cara kedua lebih cepat 8x dibandingkan cara pertama
> > >
> > > Wassalam,
> > >
> > > -MJR-
> > >
> > >
> > > Pada 11 April 2013 11.26, Jan Raisin miss.jan.raisin@
>
> > >
> > > mr Kid,
> > >>
> > >> waktu scriptnya Jan jalankan, muncul error seperti ini
> > >> [image: Gambar sisip 2]
> > >>
> > >> apa yang salah dengan excel Jan ?
> > >>
> > >> Wassalam,
> > >>
> > >> -MJR-
> > >>
> > >>
> > >> Pada 11 April 2013 11.19, Mr. Kid mr.nmkid@... menulis:
> > >>
> > >> **
>
> > >>>
> > >>>
> > >>> Bagaimana kalau dicoba pada penerapannya dan dihitung waktunya. Dari
> > >>> sekian banyak cara yang ada di atas sana tadi, mana yang lebih pas
> dan
> > >>> lebih sesuai untuk kondisi dalam contoh penerapan tadi.
> > >>>
> > >>> misal
> > >>> Cara 1 : Columns("
> > >>> Cara 2 : cells(rows.count,
> > >>>
> > >>> buat workbook baru dan isi sheet1 dengan beberapa data di kolom A, B,
> > >>> maupun C ( banyak baris x 3 kolom)
> > >>> ke VBE (ALT F11) -> menu Insert -> Module -> copasken :
> > >>>
> > >>> private declare function QueryPerformanceCou
> > >>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
> > >>> private type LARGE_INTEGER
> > >>> lowpart as long
> > >>> highpart as long
> > >>> end type
> > >>>
> > >>> public sub TesBarisBaru(
> > >>> dim udtStart as large_integer, udtEnd as large_integer
> > >>>
> > >>> 'cara 1
> > >>> call QueryPerformanceCou
> > >>> Columns("
> > >>> call QueryPerformanceCou
> > >>> debug.print "cara 1 : Columns("
> > >>> _
> > >>> "Alamat akhir : " & selection.address, _
> > >>> "Waktu : " &
> > >>> udtend.highpart-
> udtend.lowpart-
> > >>>
> > >>> 'cara 2
> > >>> call QueryPerformanceCou
> > >>> cells(rows.count,
> > >>> call QueryPerformanceCou
> > >>> debug.print "cara 2 :
> > >>> cells(rows.count,
> > >>> "Alamat akhir : " & selection.address, _
> > >>> "Waktu : " &
> > >>> udtend.highpart-
> udtend.lowpart-
> > >>>
> > >>> end sub
> > >>>
> > >>>
> > >>> Wassalam,
> > >>> Kid.
> > >>>
> > >>>
> > >>>
> > >>>
> > >>> 2013/4/10 hendrik karnadi hendrikkarnadi@
> > >>>
> > >>>
>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> coba
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> kecil)
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> atau tidak
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> ...menulis:
> > >>>
> > >>>
>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> diedit
> > >>>
> > >>>
> > >>>
> Lookin=xlValues)
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>
> > >
> > >
> >
>
>
>
Wed Apr 10, 2013 11:06 pm (PDT) . Posted by:
"Jan Raisin"
penjelasannya mantap mr..
ternyata dari 1 kasusnya pak hendrik, kalo dijabarkan bisa sampai segitu
banyak ilmu yang didapat..
syukron atas ilmunya.. semoga menjadi berkah untuk semua. Aamiin..
Wassalam,
-MJR-
Pada 11 April 2013 12.11, Mr. Kid <mr.nmkid@gmail.com > menulis:
> **
>
>
> kenapa bisa beda begitu ya? padahal berjalan di mesin yang sama
> >> bisa jadi, untuk awal kegiatan, akan ada banyak penyesuaian dan
> inisialisasi didalam sana. saya ndak tahu persis apa saja yang terjadi.
> Anggap saja sebuah pengkondisian.
>
>
> mungkin bisa dijelaskan mr.. sekalian tanya gimana cara kok tau harus
> memilih script ini:
> private declare function QueryPerformanceCounter Lib "kernel32.dll" (ByRef
> lpPerformanceCount As LARGE_INTEGER) As Long
> >> hehehehe... kalo dijawab hafalan pasti ndak terima.
> kira-kira gini :
> 1. waktu itu ada dua sisi, yaitu sisi makro dan sisi mikro.
> Sisi makro adalah dari tahun sampai ketepatan 1 detik
> Sisi mikro adalah antara 0 dan 1 detik.
> Jadi, untuk menghitung waktu proses yang sangat cepat, perlu ketepatan
> yang tinggi, yaitu di sisi mikro
>
> 2. rentang dari 0 sampai 1 detik itu bisa dipecah menjadi banyak, misal
> per milidetik,mikro detik, atau nanodetik, dsb.
>
> 3. Biasanya, untuk sisi mikro ini akan dimulai dengan penggunaan timer
> seperti :
> dim dblTime as double
> dbltime=timer
> 'proses
> dbltime=timer-dbltime
> debug.print "waktu proses : " & dbltime & " detik"
> Coba lihat hasilnya, ada angka didepan koma (detik) dan dibelakang koma
> (bisa sampai milidetik)
> Yang perlu dipahami adalah lompatan dari satu tik waktu ke tik waktu
> berikutnya tidaklah per 1 milidetik, melainkan bisa mencapai 55 milidetik
>
> 4. Yang lebih tinggi dari timer adalah GetTickCount, hanya saja kadang
> kala lompatan tik ke tik nya bisa 55 milidetik juga walau biasanya 10
> milidetik. Fungsi ini adalah fungsi WinAPI dan silakan cari di internet
> tentang detil duduk perkara si GetTickCount ini.
>
> 5. Yang lebih tinggi lagi dari GetTickCount adalah yang sampai pada
> sedekat mungkin menghitung clock komputer.
> Masih ingat bukan bahwa clock komputer seperti 2.3GHz artinya ada 2.3G tik
> per detik.
> Jadi, jika bisa mendapatkan nilai waktu dari satu tik ke tik berikutnya
> yang sangat rapat, maka pastilah harus yang mendekati frekuensi clock
> komputer tadi.
> Fungsi QueryPerformanceCounter adalah yang paling mendekatinya, karena
> bisa sampai mencatat 1.000.000.000 tik per detiknya.
>
> 5. Jadi, dengan bekal keinginan untuk tahu cara membaca tik komputer
> setepat mungkin, maka akan bertemulah dengan fungsi
> QueryPerformanceCounter
>
> 6. Fungsi QueryPerformanceCounter punya teman namanya
> QueryPerformanceFrequency
> Karena ada Frequency nya, berarti yang dihitung bukan tik nya tapi
> frekuensi per detik.
> Jika diterapkan pada kasus tadi, maka yang didapat adalah nilai frekuensi
> nya.
> Nah kalau counternya 1000000000 tik per detik, maka kalau cara 1 diproses
> sebanyak 1000 tik, maka frekuensinya 1000/1000000000
> hehehe bakal ruwet bacanya kali ya....
>
> kira-kira demikianlah...
>
> Wassalam,
> Kid.
>
>
>
> 2013/4/11 Jan Raisin <miss.jan.raisin@gmail.com >
>
>> **
>>
>>
>> tetap lebih cepat cara 2 mr. Kid
>>
>> tapi gini:
>> cara 1 di atas hasilnya: cara 2 lebih cepat 8x
>> cara 2 di atas hasilnya: cara 2 lebih cepat 4x
>>
>> kenapa bisa beda begitu ya? padahal berjalan di mesin yang sama
>> os : Win7 Ultimate 32-bit
>> proc : corei5 2,3Ghz
>> Ram : 2GB
>> excel: 2K10
>>
>> mungkin bisa dijelaskan mr.. sekalian tanya gimana cara kok tau harus
>> memilih script ini:
>> private declare function QueryPerformanceCounter Lib "kernel32.dll"
>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
>>
>> Wassalam,
>>
>> -MJR-
>>
>>
>>
>> Pada 11 April 2013 11.35, Mr. Kid <mr.nmkid@gmail.com > menulis:
>>
>> **
>>>
>>>
>>> eh... tapi,
>>> (mumpung ada yang nyoba wakakaka)
>>>
>>> gimana kalau posisi dibalik,
>>> cara 2 di atas dan cara 1 dibawah
>>> hasilnya seperti apa ya
>>>
>>> ty
>>>
>>> Wassalam,
>>> Kid
>>>
>>
>
>
ternyata dari 1 kasusnya pak hendrik, kalo dijabarkan bisa sampai segitu
banyak ilmu yang didapat..
syukron atas ilmunya.. semoga menjadi berkah untuk semua. Aamiin..
Wassalam,
-MJR-
Pada 11 April 2013 12.11, Mr. Kid <mr.nmkid@gmail.
> **
>
>
> kenapa bisa beda begitu ya? padahal berjalan di mesin yang sama
> >> bisa jadi, untuk awal kegiatan, akan ada banyak penyesuaian dan
> inisialisasi didalam sana. saya ndak tahu persis apa saja yang terjadi.
> Anggap saja sebuah pengkondisian.
>
>
> mungkin bisa dijelaskan mr.. sekalian tanya gimana cara kok tau harus
> memilih script ini:
> private declare function QueryPerformanceCou
> lpPerformanceCount As LARGE_INTEGER) As Long
> >> hehehehe... kalo dijawab hafalan pasti ndak terima.
> kira-kira gini :
> 1. waktu itu ada dua sisi, yaitu sisi makro dan sisi mikro.
> Sisi makro adalah dari tahun sampai ketepatan 1 detik
> Sisi mikro adalah antara 0 dan 1 detik.
> Jadi, untuk menghitung waktu proses yang sangat cepat, perlu ketepatan
> yang tinggi, yaitu di sisi mikro
>
> 2. rentang dari 0 sampai 1 detik itu bisa dipecah menjadi banyak, misal
> per milidetik,mikro detik, atau nanodetik, dsb.
>
> 3. Biasanya, untuk sisi mikro ini akan dimulai dengan penggunaan timer
> seperti :
> dim dblTime as double
> dbltime=timer
> 'proses
> dbltime=timer-
> debug.print "waktu proses : " & dbltime & " detik"
> Coba lihat hasilnya, ada angka didepan koma (detik) dan dibelakang koma
> (bisa sampai milidetik)
> Yang perlu dipahami adalah lompatan dari satu tik waktu ke tik waktu
> berikutnya tidaklah per 1 milidetik, melainkan bisa mencapai 55 milidetik
>
> 4. Yang lebih tinggi dari timer adalah GetTickCount, hanya saja kadang
> kala lompatan tik ke tik nya bisa 55 milidetik juga walau biasanya 10
> milidetik. Fungsi ini adalah fungsi WinAPI dan silakan cari di internet
> tentang detil duduk perkara si GetTickCount ini.
>
> 5. Yang lebih tinggi lagi dari GetTickCount adalah yang sampai pada
> sedekat mungkin menghitung clock komputer.
> Masih ingat bukan bahwa clock komputer seperti 2.3GHz artinya ada 2.3G tik
> per detik.
> Jadi, jika bisa mendapatkan nilai waktu dari satu tik ke tik berikutnya
> yang sangat rapat, maka pastilah harus yang mendekati frekuensi clock
> komputer tadi.
> Fungsi QueryPerformanceCou
> bisa sampai mencatat 1.000.000.000 tik per detiknya.
>
> 5. Jadi, dengan bekal keinginan untuk tahu cara membaca tik komputer
> setepat mungkin, maka akan bertemulah dengan fungsi
> QueryPerformanceCou
>
> 6. Fungsi QueryPerformanceCou
> QueryPerformanceFre
> Karena ada Frequency nya, berarti yang dihitung bukan tik nya tapi
> frekuensi per detik.
> Jika diterapkan pada kasus tadi, maka yang didapat adalah nilai frekuensi
> nya.
> Nah kalau counternya 1000000000 tik per detik, maka kalau cara 1 diproses
> sebanyak 1000 tik, maka frekuensinya 1000/1000000000
> hehehe bakal ruwet bacanya kali ya....
>
> kira-kira demikianlah.
>
> Wassalam,
> Kid.
>
>
>
> 2013/4/11 Jan Raisin <miss.jan.raisin@
>
>> **
>>
>>
>> tetap lebih cepat cara 2 mr. Kid
>>
>> tapi gini:
>> cara 1 di atas hasilnya: cara 2 lebih cepat 8x
>> cara 2 di atas hasilnya: cara 2 lebih cepat 4x
>>
>> kenapa bisa beda begitu ya? padahal berjalan di mesin yang sama
>> os : Win7 Ultimate 32-bit
>> proc : corei5 2,3Ghz
>> Ram : 2GB
>> excel: 2K10
>>
>> mungkin bisa dijelaskan mr.. sekalian tanya gimana cara kok tau harus
>> memilih script ini:
>> private declare function QueryPerformanceCou
>> (ByRef lpPerformanceCount As LARGE_INTEGER) As Long
>>
>> Wassalam,
>>
>> -MJR-
>>
>>
>>
>> Pada 11 April 2013 11.35, Mr. Kid <mr.nmkid@gmail.
>>
>> **
>>>
>>>
>>> eh... tapi,
>>> (mumpung ada yang nyoba wakakaka)
>>>
>>> gimana kalau posisi dibalik,
>>> cara 2 di atas dan cara 1 dibawah
>>> hasilnya seperti apa ya
>>>
>>> ty
>>>
>>> Wassalam,
>>> Kid
>>>
>>
>
>
Wed Apr 10, 2013 11:17 pm (PDT) . Posted by:
"Jan Raisin"
ini adalah hasil percobaan dengan keempat script
script 1 dari pak hendrik
script 2 dari mr kid
script 3 & 4 dari pak Anton
hasilnya sbb:
cara 1 : Columns("A:A").Find(vbNullString).Select Alamat akhir : $A$4
Waktu : 0 | 4877
cara 2 : cells(rows.count,1).end(xlup).offset(1).select Alamat akhir : $A$4
Waktu : 0 | 1435
cara 3 : Columns(1).Find(").Select Alamat akhir : $A$4 Waktu
: 0 | 2371
cara 4 : Cells(Rows.Count, 1).End(3).Offset(1).Select Alamat akhir : $A$4
Waktu : 0 | 589
ternyata yang paling cepat adalah script nomor 4 dari pak Anton,
padahal scriptnta mirip dengan script nomor 2 dari mr kid tapi perbedaan
waktunya bisa hampir sepertiganya sendiri.
Bisa tolong dijelaskan oleh pak Anton atau mr Kid?
Wassalam,
-MJR-
script 1 dari pak hendrik
script 2 dari mr kid
script 3 & 4 dari pak Anton
hasilnya sbb:
cara 1 : Columns("
Waktu : 0 | 4877
cara 2 : cells(rows.count,
Waktu : 0 | 1435
cara 3 : Columns(1).Find(
: 0 | 2371
cara 4 : Cells(Rows.Count, 1).End(3).Offset(
Waktu : 0 | 589
ternyata yang paling cepat adalah script nomor 4 dari pak Anton,
padahal scriptnta mirip dengan script nomor 2 dari mr kid tapi perbedaan
waktunya bisa hampir sepertiganya sendiri.
Bisa tolong dijelaskan oleh pak Anton atau mr Kid?
Wassalam,
-MJR-
Wed Apr 10, 2013 10:14 pm (PDT) . Posted by:
"Paulus Taripar" paulustaripar@rocketmail.com
halo mas/mbak..saya mau tanya cara memperoleh jumlah banyaknya buah secara otomatis bagaimana?
Rincian masalah seperti ini.,ketika di kolom "DATA BUAH" kita dapat memilih "PEMBELI" dan "NAMA BUAH" setelah itu "BANYAKNYA" dapat berubah bersamaan pada saat memilih "PEMBELI" dan "NAMA BUAH". Lalu bagaimana caranya ya? Terima kasih.
Rincian masalah seperti ini.,ketika di kolom "DATA BUAH" kita dapat memilih "PEMBELI" dan "NAMA BUAH" setelah itu "BANYAKNYA&quo
Wed Apr 10, 2013 10:25 pm (PDT) . Posted by:
"Mr. Kid" nmkid.family@ymail.com
hehehe... ternyata kasusnya adalah countif multi kriteria (xl2007 ke atas
pakai COuntIFs)
di Nabble, sudah dicoba menerjemahkan kasus sebagai kegiatan input yang
nama buah dan jumlahnya bisa dipilih berdasar jumlah tulisan nama buah di
data.
http://milis-belajar-excel.1048464.n5.nabble.com/menggabungkan-data-validation-dengan-fungsi-quot-COUNTIF-quot-td5717265.html
Untuk kasus ini : H5
xl2007 keatas bisa dengan :
=COUNTIFS($B$4:$B$15,G5,$A$4:$A$15,F5)
semua versi :
=SumProduct( ($B$4:$B$15=G5) * ($A$4:$A$15=F5) )
Wassalam,
Kid.
2013/4/11 Paulus Taripar <paulustaripar@rocketmail.com >
> **
>
>
> halo mas/mbak..saya mau tanya cara memperoleh jumlah banyaknya buah secara
> otomatis bagaimana?
>
> Rincian masalah seperti ini.,ketika di kolom "DATA BUAH" kita dapat
> memilih "PEMBELI" dan "NAMA BUAH" setelah itu "BANYAKNYA" dapat berubah
> bersamaan pada saat memilih "PEMBELI" dan "NAMA BUAH". Lalu bagaimana
> caranya ya? Terima kasih.
>
>
>
pakai COuntIFs)
di Nabble, sudah dicoba menerjemahkan kasus sebagai kegiatan input yang
nama buah dan jumlahnya bisa dipilih berdasar jumlah tulisan nama buah di
data.
http://milis-
Untuk kasus ini : H5
xl2007 keatas bisa dengan :
=COUNTIFS($B$
semua versi :
=SumProduct( ($B$4:$B$15=
Wassalam,
Kid.
2013/4/11 Paulus Taripar <paulustaripar@
> **
>
>
> halo mas/mbak..saya mau tanya cara memperoleh jumlah banyaknya buah secara
> otomatis bagaimana?
>
> Rincian masalah seperti ini.,ketika di kolom "DATA BUAH" kita dapat
> memilih "PEMBELI" dan "NAMA BUAH" setelah itu "BANYAKNYA&quo
> bersamaan pada saat memilih "PEMBELI" dan "NAMA BUAH". Lalu bagaimana
> caranya ya? Terima kasih.
>
>
>
Thu Apr 11, 2013 12:04 am (PDT) . Posted by:
"Paulus" paulustaripar@rocketmail.com
mas, saya mau tanya lagi bisa gak kita ambil "Data Validation" dari
sheet yg berbeda?! saya coba isi "SOURCE" dengan =sheet2!$...$... trus
muncul peringatan error gitu. Bisa gak mas kalo "Data Validation"
diinput dari sheet yg berbeda? Terima kasih, mas.
--- Mods ---
Mohon email text sebelum quoted text ya...
Supaya bisa langsung dibaca tanpa perlu scroll.
------------
--- In belajar-excel@yahoogroups.com , "Mr. Kid" <mr.nmkid@...> wrote:
>
> hehehe... ternyata kasusnya adalah countif multi kriteria (xl2007 ke
atas
> pakai COuntIFs)
>
> di Nabble, sudah dicoba menerjemahkan kasus sebagai kegiatan input
yang
> nama buah dan jumlahnya bisa dipilih berdasar jumlah tulisan nama buah
di
> data.
>
http://milis-belajar-excel.1048464.n5.nabble.com/menggabungkan-data-vali92;
dation-dengan-fungsi-quot-COUNTIF-quot-td5717265.html
>
> Untuk kasus ini : H5
> xl2007 keatas bisa dengan :
> =COUNTIFS($B$4:$B$15,G5,$A$4:$A$15,F5)
>
> semua versi :
> =SumProduct( ($B$4:$B$15=G5) * ($A$4:$A$15=F5) )
>
> Wassalam,
> Kid.
>
>
>
> 2013/4/11 Paulus Taripar paulustaripar@...
>
> > **
> >
> >
> > halo mas/mbak..saya mau tanya cara memperoleh jumlah banyaknya buah
secara
> > otomatis bagaimana?
> >
> > Rincian masalah seperti ini.,ketika di kolom "DATA BUAH" kita dapat
> > memilih "PEMBELI" dan "NAMA BUAH" setelah itu "BANYAKNYA" dapat
berubah
> > bersamaan pada saat memilih "PEMBELI" dan "NAMA BUAH". Lalu
bagaimana
> > caranya ya? Terima kasih.
> >
> >
> >
>terima kasih mas.,
sheet yg berbeda?! saya coba isi "SOURCE" dengan =sheet2!$...
muncul peringatan error gitu. Bisa gak mas kalo "Data Validation"
diinput dari sheet yg berbeda? Terima kasih, mas.
--- Mods ---
Mohon email text sebelum quoted text ya...
Supaya bisa langsung dibaca tanpa perlu scroll.
------------
--- In belajar-excel@
>
> hehehe... ternyata kasusnya adalah countif multi kriteria (xl2007 ke
atas
> pakai COuntIFs)
>
> di Nabble, sudah dicoba menerjemahkan kasus sebagai kegiatan input
yang
> nama buah dan jumlahnya bisa dipilih berdasar jumlah tulisan nama buah
di
> data.
>
http://milis-
dation-dengan-
>
> Untuk kasus ini : H5
> xl2007 keatas bisa dengan :
> =COUNTIFS($B$
>
> semua versi :
> =SumProduct( ($B$4:$B$15=
>
> Wassalam,
> Kid.
>
>
>
> 2013/4/11 Paulus Taripar paulustaripar@
>
> > **
> >
> >
> > halo mas/mbak..saya mau tanya cara memperoleh jumlah banyaknya buah
secara
> > otomatis bagaimana?
> >
> > Rincian masalah seperti ini.,ketika di kolom "DATA BUAH" kita dapat
> > memilih "PEMBELI" dan "NAMA BUAH" setelah itu "BANYAKNYA&quo
berubah
> > bersamaan pada saat memilih "PEMBELI" dan "NAMA BUAH". Lalu
bagaimana
> > caranya ya? Terima kasih.
> >
> >
> >
>terima kasih mas.,
Wed Apr 10, 2013 11:03 pm (PDT) . Posted by:
"Podo Prayitno" say_2tkpdp
Mohon penjelasan dan solusinya dari file excel saya yang mau saya gunakan untuk Absen Guru dan Pegawai di Instansi kami, file yang saya lampirkan baru setengah jadi karena untuk otak-atik makro masih bingung, untuk masalah dan harapan terlampir berkas excel. Semoga Ada Yang Bisa Membantu
Wed Apr 10, 2013 11:57 pm (PDT) . Posted by:
"Juwono Radyanto Edi" juwono.re2002
Dear all,
Setelah ngubek-ubek milis ini tapi tetap saja tidak nemu (tidak bisa kali..) maka mohon bantuannya atas problem saya di lampiran ini.
Atau kalau sudah pernah ada problem yang seperti ini mohon kiranya di lampirkan link nya
Terima kasih
Juwono RE
Setelah ngubek-ubek milis ini tapi tetap saja tidak nemu (tidak bisa kali..) maka mohon bantuannya atas problem saya di lampiran ini.
Atau kalau sudah pernah ada problem yang seperti ini mohon kiranya di lampirkan link nya
Terima kasih
Juwono RE
GROUP FOOTER MESSAGE
---------------------------------------------------------------------
bergabung ke milis (subscribe), kirim mail kosong ke:
belajar-excel-subscribe@yahoogroups.com
posting ke milis, kirimkan ke:
belajar-excel@yahoogroups.com
berkunjung ke web milis
http://tech.groups.yahoo.com/group/belajar-excel/messages
melihat file archive / mendownload lampiran
http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di :
http://milis-belajar-excel.1048464.n5.nabble.com/
menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
keluar dari membership milis (UnSubscribe):
kirim mail kosong ke belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------
bergabung ke milis (subscribe), kirim mail kosong ke:
belajar-excel-subscribe@yahoogroups.com
posting ke milis, kirimkan ke:
belajar-excel@yahoogroups.com
berkunjung ke web milis
http://tech.groups.yahoo.com/group/belajar-excel/messages
melihat file archive / mendownload lampiran
http://www.mail-archive.com/belajar-excel@yahoogroups.com/
atau (sejak 25-Apr-2011) bisa juga di :
http://milis-belajar-excel.1048464.n5.nabble.com/
menghubungi moderators & owners: belajar-excel-owner@yahoogroups.com
keluar dari membership milis (UnSubscribe):
kirim mail kosong ke belajar-excel-unsubscribe@yahoogroups.com
---------------------------------------------------------------------
Tidak ada komentar:
Posting Komentar