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 <[email protected]>
> **
>
>
> 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 <[email protected]>
> *To:* [email protected]
> *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 <[email protected]>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
>
>
>
>
>