Hai Tio,
Range yang akan dipilih selalu pada area C27:N28
1. Dengan formula vLookUp yang ada :
dim rng as range, rngPilih as range
for each rng in range("c27:n28") 'tiap range dalam range c27:n28
if rng.value=0 then 'kalau nilainya 0
if rngpilih is nothing then 'kalau belum ada range apapun dalam
rngpilih
set rngpilih=rng 'isi rngpilih dengan range yang
diproses (rng)
else 'kalau sudah ada minimal sebuah
range dalam rngpilih
set rngpilih=union( rngpilih, rng) 'gabungkan range
diproses (rng) ke dalam rngpilih
endif
endif
next rng 'rng berikutnya
2. Jika formula vlookup diubah sebagai berikut :
>> cell C27 : (copy ke kolom lain dibaris 27)
=IF(VLOOKUP($B$27,$B$3:$O$12,COLUMN(),FALSE),VLOOKUP($B$27,$B$3:$O$12,COLUMN(),FALSE),"")
>> cell C28 : (copy ke kolom lain dibaris 28)
=IF(VLOOKUP($A$24,$A$3:$O$12,COLUMN()+1,FALSE),VLOOKUP($A$24,$A$3:$O$12,COLUMN()+1,FALSE),"")
maka hasil formula akan memiliki kemungkinan berupa 3 tipe data, yaitu :
1. numerik -> ketika data source berisi nilai bertipe numerik bukan 0
2. text -> ketika data source berisi nilai 0 atau blank
3. error value -> ketika nilai kunci lookup tidak ditemukan dalam tabel
lookup atau karena nilai data dalam data source bertipe text
Pada area berformula seluruhnya, berdasar tipe data hasil formula dapat
dilakukan proses pemilihan cell memanfaatkan fitur Goto Special
Cara manualnya : (script dapat diperoleh dengan record macro)
1. pastikan formula menghasilkan tipe data yang berbeda-beda antara yang
dibutuhkan dengan yang tidak dibutuhkan (misal dengan implementasi formula
di atas)
2. blok area range c27:n28
3. jalankan fitur goto special dengan menekan CTRL G lalu menekan tombol
Special
4. Pilih item Formulas kemudian centang untuk item Text dan juga item Error
Values (yang lainnya tidak dicentang), karena yang akan dipilih adalah data
yang tidak dibutuhkan yaitu yang bertipe text atau error value
5. tekan tombol OK
6. area tertentu (special) sudah terpilih.
Jika sudah dapat hasil record macro, dan ingin menyederhanakannya,
kira-kira bunyinya akan sebagai berikut :
dim rngPilih as range
on error resume next 'trap error supaya tetap jalankan baris berikutnya
'pilih cell tertentu dengan fitur goto special
set rngpilih=range("c27:n28").specialcells( xlcelltypeformulas, xlerrors +
xltextvalues )
err.clear 'hapus error yang terjadi akibat tidak ditemukannya range
special yang dicari
on error goto 0 'hapus trap error agar kembali normal
Wassalam,
Kid.
2013/1/30 <[email protected]>
> **
>
>
>
> Dear Be-Exceller,
>
> Saya mau tanya, bagaimana cara memilih range yang tidak ada nilainya tapi
> ada formulanya. Tidak ada nilainya karena memang tidak ada di data
> sumbernya. Saya memakai formula Vlookup dengan referensi di suatu table
> lain.
>
> Saya pakai code :
>
> Range("B27").Select
> Range(Selection, Selection.End(xlToRight)).Select
> Range(Selection, Selection.End(xlDown)).Select
>
> tapi tidak berhasil, karena data yang tidak ada nilainya terpilih juga.
>
> Berikut file lampirannya.
>
>
>
> Terima kasih jawabannya.
>
> regards,
> Tio
>
>