Hai Danny,
rng.Offset(ComboBox3.ListIndex, ComboBox1.ListIndex * 3 +
ComboBox2.ListIndex).Value = TextBox1.Value
dengan :
rng -> merujuk ke range C4
Offset -> lompat dari range tertentu (dalam hal ini dari rng yang merujuk
range C4) sebanyak b baris dan k kolom
ComboBox3.ListIndex -> penunjuk jumlah baris offset alias nilai b baris
ComboBox1.ListIndex * 3 + ComboBox2.ListIndex -> penunjuk jumlah kolom
offset alias nilai k kolom
Properti ListIndex dalam combobox dan listbox jauh lebih penting dibanding
properti Text combobox atau listbox, apalagi value combobox atau listbox.
Properti listindex berbasis 0 alias nilai indeks 0 mewakili item ke-1 dalam
daftar combobox atau listbox.
Kasus Anda,
ComboBox1 berisi Bali (item ke-1 dalam daftar yang berindeks 0 alias
listindex bernilai 0) dan Jakarta (item ke-2, indeks 1)
Kalau ComboBox1 dipilih teks berbunyi Bali, berarti indeksnya 0 (listindex
bernilai 0)
dan isian ComboBox2 adalah Stock (kolom C, index 0), L Pro (kolom D, index
1), Retur (kolom E, index 2)
Kalau ComboBox2 dipilih teks berbunyi Jakarta, berarti indeksnya 1
(listindex bernilai 1)
dan isian ComboBox2 adalah Export (kolom F, index 0), Sales (kolom G, index
1), Other (kolom H, index 2)
Jadi, target penulisannya adalah :
IF ComboBox1.text ="Bali" then
IF combobox2.text = "Stock" then
tulis ke range C4 offset kolom sebanyak *0* kolom, dengan offset
baris tertentu
elseif combobox2.text="L Pro" then
tulis ke range C4 offset kolom sebanyak *1* kolom, dengan offset
baris tertentu
elseif combobox2.text="Retur" then
tulis ke range C4 offset kolom sebanyak *2* kolom, dengan offset
baris tertentu
elseif combobox1.text="Jakarta" then
IF combobox2.text="Export" then
tulis ke range C4 offset kolom sebanyak *3* kolom, dengan offset
baris tertentu
elseif combobox2.text="Sales" then
tulis ke range C4 offset kolom sebanyak *4* kolom, dengan offset
baris tertentu
elseif combobox2.text="Other" then
tulis ke range C4 offset kolom sebanyak *5* kolom, dengan offset
baris tertentu
else
'kala
endif
Karena saya termasuk malas menulis uraian logika sepanjang itu, maka dari
komposisi nilai offset kolom yang dibutuhkan :
*0,1,2,3,4,5*
tergantung dari listindex combobox1
- yang bernilai *0* harus bisa menghasilkan *0,1,2*
- yang bernilai *1* harus bisa menghasilkan *3,4,5*
dan listindex combobox2
yang kalau ditabelkan menjadi :
combobox1combobox2 target nilai offset teksnya
0 0
0 Bali - Stock
0 1
1 Bali - Lpro
0 2
2 Bali - Retur
1 0
3 Jakarta - Export
1 1
4 Jakarta - Sales
1 2
5 Jakarta - Other
Akan tampak dengan sendirinya pola dari combobox1 dan combobox2 untuk
mendapatkan nilai target offset, yaitu :
listindex nya combobox1 dikali 3 ditambah dengan nilai listindex combobox2
Jadi, nyata bahwa properti listindex lebih pokok dibanding properti text
apalagi value ketika menggunakan combobox ataupun listbox.
;)
Tidak selamanya malas itu suatu keburukan andaikan disikapi dengan baik dan
tepat
Wassalam,
Kid
2015-06-01 17:33 GMT+10:00 danny_06...@yahoo.com [belajar-excel] <
belajar-excel@yahoogroups.com>:
>
>
> rng.Offset(ComboBox3.ListIndex, ComboBox1.ListIndex * 3 +
> ComboBox2.ListIndex).Value = TextBox1.Value
>
> Oiya Mr. Kid, kenapa harus ada ( * 3 ) ya setelah ComboBox1.ListIndex?
> Tolong dijelaskan agar saya mengerti
>
>