Control : Option Button

Prasyarat:


Option Button Control adalah salah satu jenis kontrol dalam VBA yang biasanya digunakan untuk memberikan pilihan eksklusif kepada pengguna, di mana pengguna hanya dapat memilih satu opsi dari beberapa opsi yang tersedia.

Secara tampilan, Option Button Control biasanya berupa tombol bulat atau kotak kecil yang dapat diaktifkan (dipilih) atau dinonaktifkan (tidak dipilih) dengan mengkliknya.

Ketika satu Option Button Control dipilih, maka otomatis Option Button Control lain yang terhubung dengannya akan dinonaktifkan, sehingga hanya satu opsi yang dapat dipilih pada suatu waktu.

Fungsi Option Button Control sangat berguna ketika Anda ingin memberikan pilihan tunggal kepada pengguna, misalnya dalam formulir dengan pertanyaan “Ya” atau “Tidak,” atau dalam pemilihan opsi seperti “Laki-laki” atau “Perempuan.”

Ketika pengguna memilih Option button maka nilai yang dihasilkan bertype Boolean. TRUE jika option button di pilih, sedangkan FALSE jika tidak dipilih.

Berikut adalah contoh kode sederhana dalam VBA untuk membuat dua Option Button Control yang terkait ketika akan disimpan di Sheet:

Private Sub Simpan_Click()
If OptionButton1.Value Then
    Range("A2").Value = "Laki-laki"
Else
    Range("A2").Value = "Perempuan"
End If
End Sub

Pada script diatas melakukan pengecekan pada Option Button1 jika terpilih maka Range A2 akan diisi Laki-laki sedangkan jika tidak (Berarti Perempuan) maka akan diisi perempuan.

Untuk Option Button dengan 2 pilihan saja bisa juga menggunakan IMMEDIATE IF. Untuk contohnya bisa dilihat dibawah ini:

Private Sub Simpan_Click()
Range("A2").Value = IIF(OptionButton1.Value,"Laki-laki","Perempuan")
End Sub

Untuk option button yang memiliki pilihan lebih dari 3 pilihan bisa menggunkan IF bertingkat dengan tambahan variable agar tidak terjadi pengulangan script. Contohnya:

Private Sub Simpan_Click()
Dim KartuID as String

If OptionButton1.Value Then
    KartuID = "SIM"
Elseif OptionButton2.Value Then
    KartID = "KTP"
Else
    KartID = "Kartu Pelajar"
End If

Range("A2").Value = KartuID
End Sub

Atau jika ingin lebih mudah dalam menggunakan Option Button ini, bisa dibuat sebuah fungsi khusus untuk mendapatkan nilai dari Option Button.

Function getOption(GroupName As String) As String
Dim ctrl As MSForms.Control
For Each ctrl In Me.Controls
    If TypeName(ctrl) = "OptionButton" Then
        If ctrl.GroupName = GroupName And ctrl.Value Then
            getOption = ctrl.Caption
            Exit Function
        End If
    End If
Next ctrl
End Function

Untuk penggunaannya cukup gunakan dengan getoption("Namagroup")

Multi Group Option Button

Ketika banyak jenis pilihan yang berbeda group pada satu Userform biasanya ini akan menjadi masalah, dimana masalah muncul pilihannya menjadi satu kesatuan. Contohnya seperti dibawah ini.

Pilihan jenis kelamin dan Kartu Identitas menjadi satu kesatuan pilihan dimana seharusnya menjadi pilihan yang berbeda.

Disini VBA menganggap semua option button adalah satu kesatuan. Hal ini terjadi karena pada Option button belum di setting GroupName pada masing-masing Property di Option button.

Property Groupname digunakan untuk mengelempokan jenis option button dalam satu kategori yang sama. Sehingga VBA bisa mengenali setiap group option button yang satu jenis.

Pada contoh diatas, Option Laki-laki dan Option Perempuan diberi nama GroupName misalnya JK atau boleh juga JenisKelamin, sedangkan Option KTP, Option SIM dan Option Kartu Pelajar pada Property GroupName diisi dengan IDCard misalnya.

Multi Option Button

Sehingga ketika dipilih menjadi 2 pilihan kategori yang berbeda. Karena setiap Option button memiliki Group Name yang berbeda.

Leave a Reply

Your email address will not be published. Required fields are marked *

Chat WhatsApp
WhatsApp