Skip to content Skip to sidebar Skip to footer

Coding Simpan dan MsgBox Untuk Validasi Data UserForm VBA Excel

Bertemu kembali di Sobat SD Blog dengan topik kali ini mengenai "Coding Simpan dan MsgBox Untuk Validasi Data UserForm VBA Excel" bagian Belajar VBA Excel Part 6  yang membahas tentang bagaimana Cara Menyimpan Data Input UserForm Ke Worksheets  serta penggunaan makro pada proses penyimpanan ke form database. Selain itu Admin juga akan memberikan contoh menggunakan message (pesan) pemberitahuan sebagai pilihan untuk memilih simpan data atau membatalkannya.

A. Mengaktifkan/Menonaktifkan Tombol Simpan Menggunakan CheckBox

Sebelum masuk pada pembahasan mengenai topik diatas, kita menuju ke salah satu object toolbox yang terakhir dan belum Admin bahas yaitu CheckBox. Sesuai form pengimputan yang dibuat pada pembelajaran part 1 sebelumnya seperti pada gambar dibawah, checkbox ini digunakan sebagai persetujuan saat akan menyimpan data.

Form Input UserForm

Bentuk persetujuan ini di manfaatkan untuk mengaktifkan tombol simpan data nantinya. Hal ini berarti tombol simpan tidak akan berfungsi/aktif apabila checkbox persetujuan tidak dicentang. Untuk membuatnya seperti itu, lakukan tahapan berikut:

1. Properties CheckBox biarkan default saja, lalu double klik object CheckBox untuk menuju ke code window. Otomatis akan membuat sebuah scope dengan object "CheckBox" dan prosedur "Click". Tambahkan/ganti perintah makronya seperti dibawah ini.

Private Sub CheckBox_Click()
	If CheckBox.Value = True Then
		Simpan.Enabled = True
	ElseIf CheckBox.Value = False Then
		Simpan.Enabled = False
	End If
End Sub

Penjelasan makro diatas sebagai berikut:

  •  Private Sub CheckBox_Click() dan ditutup dengan End Sub. Ini adalah sebuah scope (ruang lingkup) dengan object sasaran perintah adalah checkbox dan prosedurnya adalah clik yang artinya perintah yang ditulis berikutnya akan diproses atau dijalankan saat checkbox di centang.

  • If CheckBox.Value = True Then ; Simpan.Enabled = True ; ElseIf CheckBox.Value = False Then ; Simpan.Enabled = False dan ditutup dengan End If. Perintah yang akan dijalankan disini adalah pada saat checkbox tidak dicentang maka tombol simpan akan dinonaktifkan dan pada saat checkbox dicentang maka tompol simpan akan aktif.

Aktif/Nonaktif Tombol Simpan

2. Agar tombol simpan ini otomatis nonaktif saat userform/aplikasi dijalankan dan hanya akan aktif saat checkbox dicentang, tambahkan makro CheckBox_Click pada scope prosedur userform active sehingga bila digabungkan dengan makro sebelumnya, maka scope prosedur userform aktif akan seperti dibawah ini.
Private Sub UserForm_Activate()
	Tampil_KodeID
	CheckBox_Click
End Sub

CheckBox Makro


B. Membuat Tompol Simpan dan Menambahkan Makro Untuk Menyimpan Data

Tombol simpan ini digunakan sebagai eksekutor untuk menyimpan data dari form imput userform ke worksheets database excel. Tombol simpan ini dibuat menggunakan commandbutton dan atur propertiesnya seperti pembelajaran part 1, terutama yang penting adalah mengubah (name) menjadi "Simpan" agar sesuai dengan makro yang saya berikan nantinya.

1. Membuat Scope Prosedur Simpan

Double klik atau klik kanan CommandButton "Simpan" lalu pilih "viewcode" dan akan otomatis membuat sebuah prosedur baru.

Double Clik Simpan

Tampilkan Code Window

Setelah itu tambahkan/ganti kode perintah makro berikut kedalam prosedur tersebut.

Private Sub Simpan_Click()
	Set Ws = Worksheets("BelajarVBA")
	irow = Ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
End Sub

Penjelasan Makro diatas adalah:

  • Private Sub Simpan_Click() dan ditutup dengan End Sub. Membuat sebuah scope (ruang lingkup) dengan sasaran object CommandButton "Simpan" dan prosedur perintah "ClicK" yang berarti bahwa perintah setelahnya akan dijalankan apabila tombol simpan di pilih/diklik.
  • Set Ws = Worksheets("BelajarVBA"). Ini adalah makro yang menyatakan bahwa data yang di input akan tersimpan di worksheet database excel yang sebelumnya sudah kita ganti namanya dari sheet1 menjadi "BelajarVBA" sekaligus menyingkat penulisan dan menyatakan bahwa "Ws" itu adalah worksheet "BelajarVBA".
  • irow = Ws.Cells(Rows.Count, 1).End(xlUp).Row + 1. Kode makro ini adalah sebuah perintah untuk menyimpan data selanjutnya pada 1 (satu) baris ke/dibawah baris terakhir yang terisi data.

2. Menambahkan makro perintah simpan data inputan.

Tambahkan kode makro berikut tepat dibawah irow = Ws.Cells(Rows.Count, 1).End(xlUp).Row + 1 untuk menyimpan data hasil inputan.

	Ws.Cells(irow, 1).Value = KodeID.Value
	Ws.Cells(irow, 2).Value = Nama.Value
	Ws.Cells(irow, 3).Value = Alamat.Value
	Ws.Cells(irow, 4).Value = Kecamatan.Value
	Ws.Cells(irow, 5).Value = Kelurahan.Value
	Ws.Cells(irow, 6).Value = Tanggal.Value
	If OptLaki.Value = True Then
		Ws.Cells(irow, 7).Value = "Laki - Laki"
	ElseIf OptPerempuan.Value = True Then
		Ws.Cells(irow, 7).Value = "Perempuan"
	End If
	Ws.Cells(irow, 8).Value = CDbl(Modal.Value)
	Tampil_KodeID

Dan Jangan lupa tambahkan kode On Error Resume Next dibawah Private Sub Simpan_Click(). Error terjadi karena penggunaan variable double saat menyimpan format currency agar nilai yang tersimpan tetap dalam format angka.

Makro Simpan Data

Penjelasan Makro tersebut adalah:

  • Ws.Cells(irow, 1).Value = KodeID.Value. Perintah ini berarti data yang ada pada TextBox "KodeID" akan disimpan pada worksheets "BelajarVBA" kolom pertama, satu baris dibawah data terakhir.

  • Ws.Cells(irow, 2).Value = Nama.Value. Perintah ini berarti data yang ada pada TextBox "Nama" akan disimpan pada worksheets "BelajarVBA" kolom kedua, satu baris dibawah data terakhir.

  • Ws.Cells(irow, 3).Value = Alamat.Value. Perintah ini berarti data yang ada pada TextBox "Alamat" akan disimpan pada worksheets "BelajarVBA" kolom ketiga, satu baris dibawah data terakhir.

  • Ws.Cells(irow, 4).Value = Kecamatan.Value. Perintah ini berarti data yang ada pada ComboBox "Kecamatan" akan disimpan pada worksheets "BelajarVBA" kolom keempat, satu baris dibawah data terakhir.

  • Ws.Cells(irow, 5).Value = Kelurahan.Value. Perintah ini berarti data yang ada pada ComboBox "Kelurahan" akan disimpan pada worksheets "BelajarVBA" kolom kelima, satu baris dibawah data terakhir.

  • Ws.Cells(irow, 6).Value = Tanggal.Value. Perintah ini berarti data yang ada pada DTPicker "Tanggal" akan disimpan pada worksheets "BelajarVBA" kolom keenam, satu baris dibawah data terakhir.

  • If OptLaki.Value = True Then sampai End If. Perintah ini berarti jika memilih OptLaki maka data tersimpan adalah text "Laki-Laki" dan bila memilih OptPerempuan, maka data tersimpan adalah text "Perempuan". Data tersebut akan disimpan pada worksheets "BelajarVBA" kolom ketujuh, satu baris dibawah data terakhir.

  • Ws.Cells(irow, 8).Value = CDbl(Modal.Value). Perintah ini berarti data yang ada pada TextBox "Modal" akan disimpan pada worksheets "BelajarVBA" kolom kedelapan, satu baris dibawah data terakhir. Khusus untuk format currency ini, perlu ditambahkan sebuah kode variabel Double yaitu "CDbl". fungsi kode variable Double ini untuk mengubah format currency agar tetap dalam format angka dan tidak berubah ke format text.

Sekarang coba jalankan dengan mengklik F5 dan masukkan data seperti ganbar dibawah ini:

Uji Coba Menyimpan

Dan bila berhasil hasilnya akan seperti gambar berikut:

Hasil Simpan Data


C. Mengosongkan Kolom Input Setelah Data Tersimpan

Tahapan selanjutnya yaitu mengosongkan kembali kolom input setelah menyimpan data untuk di isi kembali dengan data baru. Ada beberapa cara yang digunakan namun Admin lebih suka dengan cara berikut:

1. Membuat Scope prosedur baru dengan object prosedur "Bersihkan" (bisa diganti terserah Sobat SD). Lalu Buat kode makro seperti dibawah ini:

Private Sub Bersihkan()
	Nama.Value = "
	Alamat.Value = ""
	Kecamatan.Value = ""
	Kelurahan.Value = ""
	Tanggal.Value = "07/11/2021"
	OptLaki.Value = 0
	OptPerempuan.Value = 0
	Modal.Value = ""
End Sub
 

2. Tambahkan Bersihkan pada Scope Prosedur Simpan, letakkan pas dibawah Tampil_KodeID.

Prosedur Bersihkan

Penjelasan Makro diatas yaitu:

  • Kecuali Tanggal.Value = "07/11/2021 semua menyatakan untuk mengosongkan kolom input setelah data tersimpan.
  • Tanggal.Value = "07/11/2021. Merupakan perintah untuk mengembalikan kolom tanggal yang berubah pada saat kita menginput menjadi tanggal "07/11/2021". Tanggal ini otomatis muncul sesuai tanggal pada saat memasukkan DTPicker ke Userform.


D. Menambahkan Message Box Sebelum dan Sesudah Data Tersimpan

Pesan yang dimaksud disini adalah ketika tombol simpan diklik, akan muncul pesan pemberitahuan apakah akan menyimpan data atau tidak, dan saat data berhasil tersimpan akan memberikan pemberitahuan kembali. Untuk memasang message box ini cukup tambahkan kode makro If MsgBox("Apakah Bos-Qu Yakin Akan Meyimpan User Ini ?!!", vbYesNo + vbQuestion, "Pernyataan") = vbYes Then ini, pas dibawah irow = Ws.Cells(Rows.Count, 1).End(xlUp).Row + 1, dan tutup dengan End If yang diletakkan diatas kode Tampil_KodeID.

Untuk pesan yang memberitahukan bahwa data telah berhasil tersimpan, tambahkan kode berikut MsgBox "Simpan Data Berhasil Bos-Qu", vbInformation, "Pemberitahuan" dibawah kode Ws.Cells(irow, 8).Value = CDbl(Modal.Value).

Message Box Simpan

 

E. Menambah Message Box Saat Kolom Input Kosong

Memberikan pesan pemberitahuan saat kolom input kosong, sangat diperlukan apabila data pada kolom input tersebut mempunyai nilai penting dalam pengolahan data. Kolom input yang kosong ini bisa terjadi karena tanpa sengaja terlewati dalam penginputan.

Tambahkan kode makro berikut pas dibawah On Error Resume Next:

If Nama.Value = "" Then
	MsgBox "Kolom Nama Masih Kosong Bos-Qu !!!", vbInformation, "Pemberitahuan"
	Nama.SetFocus
	Exit Sub
ElseIf Alamat.Value = "" Then
	MsgBox "Kolom Alamat Masih Kosong Bos-Qu !!!", vbInformation, "Pemberitahuan"
	Alamat.SetFocus
	Exit Sub
ElseIf Kecamatan.Value = "" Then
	MsgBox "Kolom Kecamatan Masih Kosong Bos-Qu !!!", vbInformation, "Pemberitahuan"
	Kecamatan.SetFocus
	Exit Sub
ElseIf Kelurahan.Value = "" Then
	MsgBox "Kolom Kelurahan Masih Kosong Bos-Qu !!!", vbInformation, "Pemberitahuan"
	Kelurahan.SetFocus
	Exit Sub
ElseIf Tanggal.Value = "07/11/2021" Then
	MsgBox "Kolom Tanggal Belum Diubah Bos-Qu !!!", vbInformation, "Pemberitahuan"
	Tanggal.SetFocus
	Exit Sub
End If
If OptLaki = True Then
	OptLaki = True
ElseIf OptPerempuan = True Then
	OptPerempuan = True
Else
	MsgBox "Pilih Jenis Kelamin Dulu Bos-Qu", vbCritical, "sistem aplikasi"
	Exit Sub
End If
If Modal.Value = "" Then
	MsgBox "Kolom Modal Belum Diubah Bos-Qu !!!", vbInformation, "Pemberitahuan"
	Modal.SetFocus
	Exit Sub
End If

 

Message Box Anti Lupa

 

Untuk melihat dalam bentuk video, cek di Channel Youtube Sobat SD. Nah, seperti itu diatas cara membuat tombol simpan dan penggunaaan kode makro untuk menyimpan data dari form input userform ke worksheets database. Selain itu menambahkan beberapa message box untuk memberikan pesan pemberitahuan dan informasi agar penginputan data lebih akurat. Semoga bermanfaat, Wassalam.


Post a Comment for "Coding Simpan dan MsgBox Untuk Validasi Data UserForm VBA Excel"