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

> **
>
>
> 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 [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 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
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>
> > >>
> > >
> > >
> >
>
>  
>

Kirim email ke