Private Sub Worksheet_Deactivate()
Dim PKRJN As Range
Set PKRJN = Range("A2").CurrentRegion.Offset(1, 0)
Set PKRJN = PKRJN.Resize(PKRJN.Rows.Count - 1, 1)
PKRJN.Name = "List_PKRJN"
Sheet1.ComboBox1.*ListFillRange* = PKRJN.Name
End Sub
prosedur tsb ditulisnya di Module milik Sheet"Pekerjaan"
Combobox1 berada di Sheet1, bukan di Userform !!
( di lampiran anda, tidak ada contoh Combobox Yg akan diisi..apakah di
UserForm atau di Sheet)
dengan cara spt di atas Isi (List of Items) di ComboBox1, akan terupdate
secara
otomatis setiap Sheet pekerjaan di-deActivated (diaktifkan walaupun tidak
diubah)
lalu di non aktifkan dengan mengaktifkan sheet lain)
Disini kita mengasumsikan bahwa tiap pengubahan data di Sheet Pekerjaan,
tentunya
*harus diakhiri dengan menDeAktif-kan Sheet Pekerjaan*, karena harus
mengaktifkan
sheet1 dimana ComboBox berada.
Dengan *method Add Item* pun hal yg sama, bisa di otomatiskan
Private Sub Worksheet_Deactivate()
Dim R as Long
R = 1
Sheet1.Combobox1.Clear
Do While Not Range("A2").Cells(r, 1) = vbNullString
Sheet1.ComboBox1.AddItem Range("A2").Cells(r,1)
r = r+1
Loop
End Sub
Jadi kesimpulannya,.....
*otomatisnya pengisian Combobox *(yg akan diisi dengan List yg sudah
tertulis di sebuah
Range di sheet yg akan sering diubah (dikurangi/ diganti/ ditambah), *bukan
karena* Method
AddItem ataupun Property ListFillRange atau RowSource yg kita pakai, *
TETAPI *
*karena* TRICK yg kita lakukan.
Dua Trick di atas memanfaatkan :
(1)
* EVENT Sheet_Deactivate
(pemilihan EVENT di VBA sangat penting karena menyangkut KAPAN prosedur
akan
otomatis dijalankan)
* Penamaan Range yg diraba dengan Current Region
* Nama Range di masukkan ke nilai property ListFillRange (jika kombobox di
sheet)
diisikan ke property RowSource (jika kombobox di UserForm)
(2)
* EVENT Sheet_Deactivate
* Looping meraba semua cell yg berisi data d kolom A, mulai A3
* setiap cell yg teraba oleh loop di isikan ke combo dengan method AddItem
Be a tricky exceller
2011/8/19 Adhi <[email protected]>
> **
>
> Bagaimana cara mengisi Combo box tanpa pake .AddItem "......." ?
>
>