Cara Membuat UserForm di Excel dengan VBA, Langkah demi Langkah
Panduan membuat UserForm VBA di Excel: dari mengaktifkan Developer, membuat form, menulis kode, sampai testing. Termasuk bagian yang biasanya membuat pemula mentok.
UserForm adalah jendela input khusus yang muncul saat Anda menekan tombol di Excel. Berbeda dengan mengisi sel langsung, data masuk lewat form dengan kolom yang sudah ditentukan, sudah divalidasi, dan sudah diformat. Untuk administrasi yang dipakai banyak orang, ini membuat data jauh lebih bersih sejak awal.
Mengaktifkan tab Developer
Tab Developer tidak muncul secara bawaan. Buka File, lalu Options, lalu Customize Ribbon, dan centang Developer. Setelah itu tab-nya muncul di ribbon atas.
Membuat form
- Buka Excel, tekan Alt+F11 untuk membuka editor VBA.
- Di menu Insert, pilih UserForm. Form baru muncul di panel kiri.
- Gunakan Toolbox untuk menambahkan kontrol: TextBox untuk isian, ComboBox untuk pilihan, CommandButton untuk tombol.
- Atur properti Name setiap kontrol dengan nama yang jelas, misalnya txtNama, txtTanggal, cmdSimpan. Nama bawaan seperti TextBox1 bikin kacau saat kodenya sudah panjang.
- Ganti teks tombol menjadi Simpan, dan beri label yang jelas di samping setiap kolom.
Menulis kode
Setiap UserForm punya Initialize, yang dipanggil saat form dibuka. Di sinilah Anda biasanya mengisi ComboBox dengan daftar pilihan. Peristiwa klik tombol disimpan di kode di balik form itu sendiri.
Private Sub UserForm_Initialize()
' Isi ComboBox dari daftar yang sudah disiapkan
With Me.cmbKategori
.Clear
.AddItem "Operasional"
.AddItem "Administrasi"
.AddItem "Pemasaran"
End With
End Sub
Private Sub cmdSimpan_Click()
Dim ws As Worksheet
Dim barisTerakhir As Long
' Validasi: nama tidak boleh kosong
If Trim(Me.txtNama.Text) = "" Then
MsgBox "Nama wajib diisi.", vbExclamation, "Data belum lengkap"
Me.txtNama.SetFocus
Exit Sub
End If
' Validasi: tanggal harus terisi dan boleh dikonversi
If Not IsDate(Me.txtTanggal.Text) Then
MsgBox "Tanggal tidak valid.", vbExclamation, "Data belum lengkap"
Me.txtTanggal.SetFocus
Exit Sub
End If
Set ws = ThisWorkbook.Sheets("Data")
barisTerakhir = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
ws.Cells(barisTerakhir, 1).Value = Me.txtNama.Text
ws.Cells(barisTerakhir, 2).Value = CDate(Me.txtTanggal.Text)
ws.Cells(barisTerakhir, 3).Value = Me.cmbKategori.Value
MsgBox "Tersimpan di baris " & barisTerakhir, vbInformation
Me.txtNama.Text = ""
Me.txtTanggal.Text = ""
Me.txtNama.SetFocus
End SubMenjalankan form
Untuk menjalankan form, tekan tombol Run di editor VBA atau tekan F5. Untuk memanggil form dari tombol di sheet, gunakan kode pendek berikut di belakang tombolnya.
Private Sub btnBukaForm_Click()
UserForm1.Show
End SubKalau Anda butuh ini untuk pekerjaan nyata
Membuat form pertama memang bisa membingungkan, tapi membangun form yang benar-benar dipakai tim dengan banyak aturan validasi, format tanggal yang beragam, dan laporan yang langsung jadi jauh lebih besar. Kalau kebutuhan Anda sudah seperti itu, lebih baik dikerjakan sekali dengan benar daripada dirakit sendiri berkali-kali.
Pertanyaan yang sering muncul
- Kenapa tab Developer tidak muncul di Excel saya?
- Tab Developer tidak aktif secara bawaan. Buka File, lalu Options, lalu Customize Ribbon, dan centang Developer di daftar sebelah kanan. Setelah itu tabnya muncul di ribbon.
- Kenapa UserForm saya hilang setelah berkas disimpan?
- Kemungkinan berkasnya disimpan sebagai .xlsx, yang memang tidak bisa menyimpan macro maupun UserForm. Simpan sebagai Excel Macro-Enabled Workbook (.xlsm) lewat Save As.
- Apakah UserForm bisa dipakai di komputer lain?
- Bisa, selama komputernya memakai Excel di Windows dan makronya diizinkan. Sertakan panduan singkat cara mengaktifkan makro, karena komputer kantor sering memblokirnya secara bawaan.
- Kenapa kode VBA saya berubah sendiri hurufnya?
- Itu normal. Editor VBA otomatis menyeragamkan kapitalisasi nama perintah dan variabel yang sudah dikenalinya. Kalau ada yang berubah dan malah error, berarti ada nama yang salah ketik sejak awal.
Butuh bantuan untuk masalah Anda sendiri?
Konsultasi gratis, tanpa ikatan. Jelaskan kebutuhan Anda, dan kami bantu tentukan pendekatan yang paling masuk akal, termasuk kalau jawabannya ternyata tidak perlu diotomasi.