Selasa, 21 Februari 2012

Memanfaatkan ComboBox pada Form Control dan ActiveX Control



Excel memiliki fitur untuk menampilkan objek control untuk ditempatkan di worksheet. Keuntungan menggunakan Form Control ini adalah:


  • Form control memberi gaya visual yang menarik dan jelas di worksheet
  • Form Control bisa digunakan untuk memaksa user memilih satu di antara beberapa pilihan (pro-active data validation)
ActiveX ataukah Form Controls?
Excel memiliki 2 fitur terkait form Control ini, yakni ActiveX Controls dan Form Controls. ActiveX Control memiliki beberapa keunggulan, yakni kita bisa mengubah beberapa propertiesnya, seperti warna background, warna tulisan, dll. ActiveX Control juga punya beberapa bulit-in events yang langsung dihubungkan dengan control tersebut. Hanya saja, kita perlu pengetahuan tentang VBA untuk memaksimalkan fungsi dari ActiveX Controls.


Sementara Form Controls, pengoperasiannya lebih sederhana karena sudah dilengkapi dengan built-in metode yang bisa langsung menempatkan nilai dari control di worksheet.Sayangnya, kita tidak bisa mengubah tampilan dari objek, baik warna, besar tulisan, dll.
Bagi pemula, disarankan menggunakan objek dari Forms Controls agar pengoperasiannya lebih mudah.
Lalu di mana kita bisa mengoerasikan Form Control?



Di mana Form Control Ngumpet?
Form Control berada di menu ribbon Developer. Menu Developer secara default belum ditampakkan oleh Excel. Untuk menampakkannya:
  • Office 2007: Klik Office Button, Pilih Excel Options. pada tab Popular, centang "Show Developer Tab on The Ribbon"
  • Office 2010: Klik File -- Options -- Customize Ribbon. Centang tulisan "Developer"
Sekarang di menu Ribbon telah muncul tab baru, yakni Developer.
Keterangan tentang objek-objek yang ada pada Form Controls adalah sebagai berikut:

Menggunakan ComboBox Form Controls
Kalau kita pernah membuat DropDown List dari Data Validation, maka ComboBox mempunyai fungsi yang mirip dengan DropDwon List tersebut. Cara menggunakannya adalah sebagai berikut:

  1. Ketiklah sebuah daftar nama bulan di sel A1:A12 
  2. Pilih menu Developer, Insert, ComboBox (Form Control).
  3. Buatlah comboBox di Sheet (seperti membuat shape dari menu Insert - Shapes)
  4. Klik kanan ComboBox, pilih Format Control.
  5. Pada kotak Input Range, tuliskan : A1:A12
  6. Pada kotak Cell Link, tuliskan B1
  7. Ubah nilai dari Drop Down Lines menjadi 12.
  8. Klik OK.
Sekarang kita bisa mencoba memilih daftar nama bulan dari ComboBox. Nomor Index dari pilihan kita akan dituliskan di sel B1, sesuai settingan pada langkah ke-6 di atas.
Untuk latihan lebih lanjut, kita bisa memanfaatkan name_range agar daftar yang dimunculkan bisa lebih fleksibel dan dinamis. Penjelasan tentang name_range ini bisa dilihat di sini


ComboBox ActiveX Controls
Penggunaan ComboBox dari ActiveX Control hampir sama dengan ComboBox dari Form Controls. Bedanya, pada ActiveX Control, tampilan comboBox bisa diubah sedemikain rupa sehingga lebih menarik.


Caranya sama dengan langkah di atas, 
  1. Insert dari menu Developer, pilih ComboBox (ActiveX Controls) yang di bagian bawah. Tempatkan di sheet.
  2. Klik Properties di toolbar (masih di menu Developer). Pastikan bahwa tombol Design Mode masih aktif.
  3. Muncullah kotak dialog yang berisi benyak properties yang bisa kita ubah. Cobalah diubah hal-hal berikut:
  • BackColor (warna dasar)
  • BorderColor (warna garis tepi)
  • Font (Jenis dan besar tulisan)
  • ForeColor (Warna huruf)
  • ListRow (Jumlah daftar ke bawah yang akan ditampilkan)
  • Shadow (bayangan)
  • LinkedCell (Sel yang akan menjadi tempat menuliskan hasil yang dipillih)
  • ListFillRange (Alamat sel yang akan dimasukkan daftar, seperti langkah nomor 5 di atas)
Setelah selesai melakukan pengaturan di Properties, saatnya kita mencoba hasilnya. Namun yang perlu diperhatikan, sebelum kita mencoba, klik terlebih dahulu tombol Design Mode pada toolbar, sehingga menjadi tidak aktif.

Pengaturan seperti dijelaskan di atas, disebut sebagai pengaturan in-Design. Bagi yang sudah familiar dengan VBA, seringkali pengaturannya dilakukan pada saat run-time. Untuk mengatur saat run-time, satu hal ang perlu dipahami adalah bahwa Objek pada Form Controls dan ActiveX Control menyatu pada Worksheet. Artinya secara hirarki, ComboBox ini ada di bawah Worksheet.

Berikut adalah salah satu contoh pengaturan ListFillRange pada saat run-time.

Private Sub ComboBox1_Change()
Range("B1").Value = ComboBox1.Value
End Sub

Private Sub ComboBox1_LostFocus()
ComboBox1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 Then
      ' Jika yang di-klik adalah sel B1
      If Target.Row = 1 And Target.Column = 2 Then
          With ComboBox1
                .Visible = True
                .Clear
                .AddItem "Januari"
                .AddItem "Pebruari"
                .AddItem "Maret"
                .AddItem "April"
                .AddItem "Mei"
                .AddItem "Juni"
          End With
     End If
End If
End Sub

Kode di atas ditempatkan di Worksheet module, dengan cara klik kanan nama sheet, kemudian menuliskan kode di atas.

Dengan kode seperti itu, maka ketika kita meng-klik sel "B1", maka comboBox akan muncul dengan daftar yang sudah ditambah yakni Januari - Juni. Ketika nilai comboBox1 diselect, maka hasilnya ditampilkan di sel B1. Ketika sel selain B1 yang diklik, maka comboBox akan hilang dari permukaan.

Asyik khan?

Oke, sekian saja tulisan ringan kali ini. Seperti biasa, file contoh bisa di-download di sini atau di Boxnet pada sidebar.





Artikel Terkait:

5 komentar:

Majnun mengatakan...

Mantep.......!
Sangat menarik dan menambah wawasan.

Terima kasih banyak

ADMIN mengatakan...

mantap.. guru..
saya ada sedikit kesulitan untuk membuat combox input Pelajaran,, setiap ganti pelajaran tapi sheetnya ga berubah... ingin seperti project guru "raport sudah Jadi" yang sudah jadi... pPM ajah ke roomajo@gmail.com / suharjo.rustam@yahoo.com...
terima kasih bantuannya

kang opick mengatakan...

Assalamu'alaikum wr.wb.
Pak Heru saya sudah lama mengikuti pelajaan excel dari blog ini. dan saya terus mengupdate tulisan pak heru. kebetulan saya ditugasi untuk membuat aplikasi tabungan siswa. saya coba seaching diintenet ternyata setelah didownload semuanya dipotek dengan alasan harus bayar dulu. saya mohon sedikit penceahan pak heru bagaimana caanya membuat aplikasi tabungan. terimakasih atas kesdiannya. wassalam

Anonim mengatakan...

Assalamu'alaikum wr.wb
Pak heru kebetulan saya buka aplikas raport yg bapak buat, saya sangat tertarik namun mau mengubah fiturnya sy kesulitan pak, mohon percerahan

IyanZone mengatakan...

Menarik pembahasannya, sangat berguna bagi orang lain. Hal ini pun dapat menjadi inspirasi ide bagi saya dalam membahas tentang Excel di blog saya. Kebetulan saya ada pembahasan juga mengenai microsoft Excel di blog saya, silahkan berkunjung untuk melihatnya