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

Kirim email ke