Membuat Validasi Input pada UserForm Excel agar Data Lebih Akurat

Dalam pengembangan aplikasi VBA Excel, UserForm sering digunakan sebagai antarmuka agar pengguna dapat memasukkan data dengan lebih mudah dibandingkan mengetik langsung pada worksheet. Dengan tampilan berupa TextBox, ComboBox, CheckBox, dan tombol perintah, proses input data menjadi lebih terstruktur dan profesional.

Namun, tampilan UserForm yang menarik belum cukup untuk menjamin kualitas data. Pengguna tetap dapat memasukkan nilai yang salah, seperti teks pada kolom angka, format tanggal yang tidak sesuai, atau membiarkan kolom penting kosong.

Di sinilah peran validasi input menjadi sangat penting. Validasi membantu memastikan bahwa setiap data yang masuk telah memenuhi aturan tertentu sebelum disimpan atau diproses lebih lanjut.


Mengapa Validasi Input pada UserForm Dibutuhkan?

Sebuah aplikasi tidak hanya harus mampu menerima data, tetapi juga harus mampu menolak data yang tidak sesuai.

Sebagai contoh, sebuah form transaksi mungkin memiliki beberapa aturan:

  • Nama pelanggan wajib diisi.

  • Jumlah barang harus berupa angka.

  • Harga tidak boleh bernilai negatif.

  • Tanggal transaksi harus valid.

Tanpa validasi, kesalahan kecil dari pengguna dapat menyebabkan:

  • data tidak konsisten,

  • hasil perhitungan salah,

  • munculnya error VBA,

  • laporan menjadi tidak akurat.

Dengan validasi, aplikasi dapat memberikan arahan kepada pengguna sebelum data masuk ke sistem utama.


Menyiapkan Struktur UserForm

Sebagai contoh, buat sebuah UserForm dengan komponen berikut:

KontrolNamaFungsi
TextBox txtNama Input nama
TextBox txtUmur Input umur
TextBox txtTanggal Input tanggal
CommandButton cmdSimpan Menyimpan data

UserForm ini akan digunakan sebagai simulasi form pendaftaran sederhana.


Validasi Data Kosong

Salah satu validasi paling dasar adalah memastikan pengguna tidak meninggalkan kolom penting dalam keadaan kosong.

Contoh:

Private Sub cmdSimpan_Click()

    If txtNama.Value = "" Then

        MsgBox "Nama harus diisi."

        txtNama.SetFocus

        Exit Sub

    End If

End Sub

Kode tersebut akan menghentikan proses penyimpanan jika kolom nama masih kosong.

Perintah:

SetFocus

digunakan untuk mengarahkan kursor kembali ke bagian yang harus diperbaiki.


Memastikan Input Berupa Angka dengan IsNumeric

Kolom umur atau jumlah barang biasanya hanya boleh berisi angka.

Gunakan fungsi IsNumeric untuk melakukan pemeriksaan.

If Not IsNumeric(txtUmur.Value) Then

    MsgBox "Umur harus berupa angka."

    txtUmur.SetFocus

    Exit Sub

End If

Jika pengguna memasukkan:

dua puluh

maka program akan menolak input tersebut.

Sedangkan:

20

akan diterima sebagai data valid.


Memvalidasi Tanggal dengan IsDate

Data tanggal sering menjadi sumber kesalahan karena pengguna dapat memasukkan berbagai format.

Gunakan IsDate untuk memastikan nilai tersebut benar-benar dapat dikenali sebagai tanggal.

If Not IsDate(txtTanggal.Value) Then

    MsgBox "Tanggal tidak valid."

    txtTanggal.SetFocus

    Exit Sub

End If

Contoh input yang valid:

10/08/2026

Contoh input yang salah:

abc123

Membatasi Rentang Nilai Input

Validasi tidak hanya memeriksa tipe data, tetapi juga batas nilai.

Misalnya umur harus berada antara 1 sampai 100 tahun.

If CInt(txtUmur.Value) < 1 Or _
CInt(txtUmur.Value) > 100 Then

    MsgBox "Umur harus antara 1 sampai 100."

    Exit Sub

End If

Dengan aturan ini, data yang tidak masuk akal dapat dicegah sejak awal.


Menggabungkan Beberapa Validasi

Dalam aplikasi nyata, beberapa pemeriksaan biasanya dilakukan secara berurutan.

Contoh lengkap:

Private Sub cmdSimpan_Click()

    If txtNama.Value = "" Then

        MsgBox "Nama belum diisi."
        Exit Sub

    End If


    If Not IsNumeric(txtUmur.Value) Then

        MsgBox "Umur harus berupa angka."
        Exit Sub

    End If


    If Not IsDate(txtTanggal.Value) Then

        MsgBox "Tanggal tidak valid."
        Exit Sub

    End If


    MsgBox "Data berhasil divalidasi."

End Sub

Alur program menjadi:

  1. Periksa nama.

  2. Periksa umur.

  3. Periksa tanggal.

  4. Lanjutkan proses penyimpanan.


Menambahkan Validasi Saat Pengguna Mengetik

Selain memeriksa saat tombol ditekan, validasi juga dapat dilakukan ketika pengguna sedang memasukkan data.

Contohnya membatasi TextBox hanya menerima angka.

Private Sub txtUmur_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    If KeyAscii < 48 Or KeyAscii > 57 Then

        KeyAscii = 0

    End If

End Sub

Kode tersebut akan mencegah karakter selain angka masuk ke TextBox.

Misalnya:

✔ 25
✘ Dua puluh lima
✘ ABC


Menampilkan Pesan Error yang Lebih Profesional

Pesan validasi sebaiknya tidak hanya mengatakan "Salah", tetapi memberikan informasi yang membantu.

Kurang efektif:

Input salah!

Lebih baik:

Umur harus berupa angka antara 1 hingga 100 tahun.

Pesan yang jelas membuat pengguna lebih cepat memahami masalah dan memperbaiki input.


Studi Kasus: Form Data Karyawan

Misalkan sebuah aplikasi memiliki form karyawan dengan aturan:

  • Nama wajib diisi.

  • Umur harus angka.

  • Email harus tersedia.

  • Tanggal masuk harus valid.

Struktur validasinya dapat dibuat seperti berikut:

If txtNama = "" Then

    MsgBox "Nama karyawan wajib diisi."
    Exit Sub

ElseIf Not IsNumeric(txtUmur) Then

    MsgBox "Umur harus berupa angka."
    Exit Sub

ElseIf Not IsDate(txtTanggalMasuk) Then

    MsgBox "Tanggal masuk tidak valid."
    Exit Sub

End If

Dengan pola ini, UserForm dapat berfungsi sebagai pintu penyaring sebelum data masuk ke worksheet.


Kesalahan yang Sering Terjadi

Langsung Menyimpan Data Tanpa Pemeriksaan

Banyak aplikasi sederhana langsung memasukkan nilai ke worksheet.

Akibatnya, data kosong atau salah format dapat tersimpan dan sulit diperbaiki.


Melakukan Konversi Sebelum Validasi

Contoh yang berisiko:

Umur = CInt(txtUmur.Value)

Jika TextBox berisi teks, VBA akan menghasilkan error.

Lebih aman:

If IsNumeric(txtUmur.Value) Then

    Umur = CInt(txtUmur.Value)

End If

Terlalu Banyak Validasi dalam Satu Prosedur

Jika seluruh pemeriksaan ditulis dalam satu blok panjang, kode akan sulit dipelihara.

Untuk aplikasi besar, pertimbangkan membuat prosedur validasi terpisah.


Tips Membuat Validasi UserForm yang Profesional

Beberapa praktik yang dapat diterapkan:

  • Validasi data sebelum proses penyimpanan.

  • Gunakan fungsi bawaan seperti IsNumeric, IsDate, dan Trim.

  • Gunakan SetFocus untuk membantu pengguna memperbaiki input.

  • Berikan pesan kesalahan yang spesifik.

  • Pisahkan kode validasi dari kode penyimpanan data.

Dengan pendekatan ini, UserForm tidak hanya menjadi tampilan input, tetapi juga menjadi sistem kontrol kualitas data.


Kesimpulan

Validasi input merupakan bagian penting dalam pembuatan aplikasi berbasis UserForm Excel. Tanpa validasi, aplikasi berisiko menerima data yang salah dan menghasilkan informasi yang tidak akurat.

Dengan memanfaatkan fungsi seperti IsNumeric, IsDate, serta teknik pemeriksaan kondisi menggunakan If...Then...Else, Anda dapat membuat UserForm yang lebih aman dan mudah digunakan.

Kemampuan membangun validasi input menjadi langkah penting sebelum mengembangkan aplikasi VBA yang lebih kompleks seperti sistem absensi, aplikasi penjualan, pengelolaan data karyawan, hingga sistem administrasi berbasis Excel.

Hubungi Kami

Kantor Berkreasi
Alamat :
Pens Sky Venture - Sukolilo Surabaya
Karangrejo Tmur 17 Surabaya

Email : kantor.berkreasi@gmail.com
WA : wa.me/6287761589881  
(Support  Mbak Ana)

Tim Pengembang

Dr. Rojabi Azharghany, M.Si, S.Sos
Dr. H. Agus Sulthoni Imami, S.Psi. M.Pd.I.
Ali Ishaq, M.Pd.
Didik Rahwiniyanto, S.Si., M.Pd.
Mujiburrohman, M.Pd.
Mohammad Zikky, S.ST, M.T
Amien sawedi, S.Pd.
Didik P Wicaksono, M.Pd.