Karena letak kolom pemcariannya berubah-ubah, maka logikanya seperti ini:
1. Cari dahulu nomor index kolom pencarian, syntaxnya seperti ini:
Set rgFind = Range("a2:j2").Find(sCol, lookat:=xlWhole, MatchCase:=True)
yang berwarna merah adalah variabel untuk menyimpan range hasil
pencarian
yang berwarna coklat adalah variabel untuk menyimpan nama header kolom
yang dicari
>>> karena pencarian atau pembadingan data harus dilakukan terhadap
seluruh isi cell, tidak terhadap sebagian isi dari cell tersebut, karena
itu digunakan xlWhole
Jika ada lebih dari 1 kolom maka jumlah variabel yang berwarna merah
dan coklat harus disesuaikan dengan jumlah kolom pencarian
2. Setelah ketemu letak setiap kolom yang diinginkan maka yang harus
dilakukan selanjutnya adalah membandingkan isi data dengan kriteria yang
telah ditentukan untuk setiap kolom
syntaxnya sperti ini:
Set rgFind = rgCell.Find(vCrit, lookat:=xlPart, MatchCase:=False)
karena variabel yang warna merah setelah proses nomor 1 sudah tidak
digunakan lagi, maka Jan manfaatkan untuk proses yang kedua
untuk proses lebih dari 1 kolom jika kondisinya serupa maka masih
memungkinkan menggunakan cara seperti ini
Yang warna hijau adalah kriteria yang dibandingkan terhadap letak kolom
jika kriterianya lebih dari 1 maka jumlah variabel ini juga
menyesuaikan dengan jumlah kriteria yang ada
>>> karena pencarian kriteria bisa menggunakan sebagian data, maka
kriteria pada LookAt menggunakan xlPart
>>> karena pencarian kriteia mungkin saja tidak case sensitif maka
pada MatchCase diisi dengan False
3. Algoritmanya kira-kira seperti ini:
>>> cari dulu letak setiap kolom yang ingin dicari datanya
>>> lakukan pengujian terhadap 1 kolom, sebaiknya dimulai dari kolom
yang paling kiri ke arah kanan biar berurutan, tapi kalo mau loncat-loncat
juga tidak masalah
>>> jika isi data pada kolom pertama sama dengan kriteria pertama, maka
lakukan pengujian terhadap kolom berikutnya
>>> tetapi jika isi data pada kolom pertama tidak sama dengan kriteria
pertama maka lanjutkan dengan data berikutnya pada kolom pertama
>>> begitu pun untuk pengujian kolom kedua dan seterusnya
>>> jika seluruh data pada setiap kolom sesuai, maka ambil nilai baris
dari data tersebut
>>> berdasarkan nilai baris data yang sudah diperoleh, lakukan proses
copas isi data pada baris tersebut ke tabel hasil
>>> lakukan pengecekan terhadap data berikutnya sampai seluruh data
selesa di cek
Kira-kira bisa dimengerti tidak ya? jika susah dimengerti harap dimaklumi
karena Jan juga sedang tahap belajar.
Ada yang berminat membuatkan scriptnya?
btw, script Jan di email sebelumnya untuk data yang sangat banyak akan
kemungkinan akan berjalan lambat karena proses copas langsung dari cell
yang satu ke cell yang lain
walau pun masih bisa dipercepat dengan men-disable screen update, tetapi
jika ingin lebih cepat lagi maka proses copas harus melalui wadah yang
bernama array
mungkin ada Be-Exceller yang bersedia membantu menyempurnakan..
Salam,
-Miss Jan Raisin-
- Untuk kepentingan belajar bersama, pertanyaan harap ditujukan *hanya*ke
[email protected] bukan dikirim japri ke email pribadi
member milis;
- Jika pertanyaan lama direspon, bersabarlah karena ALLAH beserta dengan
orang-orang yang sabar QS 2:153;
- Harap dipahami bersama bahwa solusi diberikan oleh Be-Exceller yang
memiliki waktu untuk on line, mengetahui solusi atas pertanyaan yang
ditanyakan, mau dan berani untuk membantu, tanpa mengharap imbalan dari
Thread Starter (TS) atau Post Starter (PS), selain itu Be-Excelller juga
memiliki kewajiban yang harus dipenuhi di dunia nyata sehingga tidak selalu
bisa on line setiap saat;
- Semoga semangat berbagi dan membantu semakin meningkat di kalangan
Be-Exceller dan menjadi amalan yang baik untuk tabungan di akhirat nanti.
اَمِين يَا رَبَّ الْعَالَمِيْن
Pada 11 Juli 2013 19.16, <[email protected]> menulis:
> **
>
>
> ** Maaf, mksdny Miss Jan Raisin..
> Oh, y btw sekalian nanya bagaimana kl ada 2 keyword atau 2 kriteria yg di
> cari pd dua kolom yg berbeda..?
>
> Terima ksh
>
> Salam...
> Sent from my BlackBerry®
> powered by Sinyal Kuat INDOSAT
> ------------------------------
>
>