Cara Membuat Form Interaktif dengan Excel VBA MAcro
Di bawah ini kita akan melihat program di Excel VBA Cara Membuat Form Interaktif dengan Excel VBA MAcro. Userform yang akan kita buat terlihat sebagai berikut:
Penjelasan: setiap kali Anda memasukkan nilai di kotak teks ID, Excel VBA memuat rekaman yang sesuai. Saat Anda mengklik tombol Edit / Add, Excel VBA mengedit catatan pada lembar atau menambahkan catatan saat ID belum ada. Tombol Hapus menghapus semua kotak teks. Tombol Tutup menutup Userform.
Untuk membuat Userform ini, jalankan langkah-langkah berikut.
1. Buka Editor Visual Basic . Jika Project Explorer tidak terlihat, klik View, Project Explorer.
2. Klik Sisipkan, Bentuk Pengguna. Jika Toolbox tidak muncul secara otomatis, klik View, Toolbox. Layar Anda harus diatur seperti di bawah ini.
3. Tambahkan label, kotak teks (pertama di atas, kedua di bawah yang pertama, dan seterusnya) dan tombol perintah. Setelah ini selesai, hasilnya harus konsisten dengan gambar Userform yang ditunjukkan sebelumnya. Misalnya, buat kontrol kotak teks dengan mengklik TextBox dari Toolbox. Selanjutnya, Anda dapat menyeret kotak teks pada Userform.
4. Anda dapat mengubah nama dan judul kontrol. Nama digunakan dalam kode VBA Excel. Teks adalah yang muncul di layar Anda. Merupakan praktik yang baik untuk mengubah nama kontrol, tetapi tidak perlu di sini karena kami hanya memiliki beberapa kontrol dalam contoh ini. Untuk mengubah keterangan label, kotak teks dan tombol perintah, klik View, Properties Window dan klik pada setiap kontrol.
5. Untuk menampilkan Userform, letakkan tombol perintah pada lembar kerja Anda dan tambahkan baris kode berikut:
Private Sub CommandButton1_Click () UserForm1.Show End Sub
Kita sekarang akan membuat Sub UserForm_Initialize. Ketika Anda menggunakan metode Show untuk Userform, sub ini secara otomatis akan dijalankan.
6. Buka Editor Visual Basic .
7. Dalam Project Explorer, klik kanan pada UserForm1 lalu klik Lihat Kode.
8. Pilih Userform dari daftar drop-down kiri. Pilih Inisialisasi dari daftar drop-down kanan.
9. Tambahkan baris kode berikut:
Sub Private UserForm_Initialize () TextBox1.SetFocus End Sub
Penjelasan: baris kode ini menetapkan fokus pada kotak teks pertama karena di sinilah kita ingin memulai ketika Userform dimuat.
Kami sekarang telah membuat bagian pertama dari Userform. Meskipun sudah terlihat rapi, namun tidak akan terjadi apa-apa saat kita memasukkan nilai di kotak teks ID atau saat kita mengklik salah satu tombol perintah.
10. Dalam Project Explorer, klik kanan pada UserForm1 lalu klik Lihat Kode.
11. Pilih TextBox1 dari daftar drop-down kiri. Pilih Ubah dari daftar drop-down kanan.
12. Tambahkan baris kode berikut:
Sub Private TextBox1_Change () GetData End Sub
13. Di Project Explorer, klik dua kali pada UserForm1.
14. Klik dua kali pada tombol perintah Edit / Add.
15. Tambahkan baris kode berikut:
Private Sub CommandButton1_Click () EditAdd End Sub
16. Klik dua kali pada tombol perintah Hapus.
17. Tambahkan baris kode berikut:
Private Sub CommandButton2_Click () ClearForm End Sub
Penjelasan: subs ini memanggil subs lain yang akan kita buat sebentar lagi.
18. Klik dua kali pada tombol perintah Tutup.
19. Tambahkan baris kode berikut:
Private Sub CommandButton3_Click () Unload Me End Sub
Penjelasan: baris kode ini menutup Userform.
Saatnya membuat kapal selam. Anda dapat membaca Fungsi dan Sub bab kami untuk mempelajari lebih lanjut tentang subs. Jika Anda sedang terburu-buru, cukup tempatkan sub-sub berikut ini ke dalam modul (Di Editor Visual Basic, klik Sisipkan, Modul).
20. Pertama, nyatakan tiga variabel bertipe Integer dan satu variabel bertipe Boolean. Deklarasikan variabel di bagian Deklarasi Umum (di bagian atas modul). Dengan cara ini Anda hanya perlu mendeklarasikan variabel satu kali dan Anda dapat menggunakannya di banyak sub.
21. Tambahkan sub GetData.
Dim id As Integer , i As Integer , j As Integer , flag As Boolean Sub GetData() If IsNumeric(UserForm1.TextBox1.Value) Then     flag = False     i = 0     id = UserForm1.TextBox1.Value     Do While Cells(i + 1, 1).Value <> ""         If Cells(i + 1, 1).Value = id Then             flag = True             For j = 2 To 3                 UserForm1.Controls("TextBox" & j).Value = Cells(i + 1, j).Value             Next j         End If         i = i + 1     Loop     If flag = False Then         For j = 2 To 3             UserForm1.Controls("TextBox" & j).Value = ""         Next j     End If Else     ClearForm End If End Sub
Penjelasan: Jika kotak teks ID berisi nilai numerik, Excel VBA mencari ID tersebut dan memuat rekaman yang sesuai. Kami menggunakan Koleksi Kontrol untuk dengan mudah melewati kotak teks. Jika Excel VBA tidak dapat menemukan ID (bendera masih False), itu mengosongkan kotak teks kedua dan ketiga. Jika kotak teks ID tidak berisi nilai numerik, Excel VBA memanggil sub ClearForm.
22. Tambahkan sub ClearForm.
Sub ClearForm () For j = 1 To 3     UserForm1.Controls ("TextBox" & j) .Value = "" Next j End Sub
Penjelasan: Excel VBA menghapus semua kotak teks.
23. Tambahkan sub EditAdd.
Sub EditAdd() Dim emptyRow As Long If UserForm1.TextBox1.Value <> "" Then     flag = False     i = 0     id = UserForm1.TextBox1.Value     emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1     Do While Cells(i + 1, 1).Value <> ""         If Cells(i + 1, 1).Value = id Then             flag = True             For j = 2 To 3                 Cells(i + 1, j).Value = UserForm1.Controls("TextBox" & j).Value             Next j         End If         i = i + 1     Loop     If flag = False Then         For j = 1 To 3             Cells(emptyRow, j).Value = UserForm1.Controls("TextBox" & j).Value         Next j     End If End If End Sub
Penjelasan: Jika kotak teks ID tidak kosong, Excel VBA mengedit catatan pada lembar (kebalikan dari memuat catatan seperti yang telah kita lihat sebelumnya). Jika Excel VBA tidak dapat menemukan ID (bendera masih False), itu menambahkan catatan ke baris kosong berikutnya. Variabel emptyRow adalah baris kosong pertama dan meningkat setiap kali record ditambahkan.
24. Keluar dari Editor Visual Basic, masukkan label yang ditunjukkan di bawah ini ke dalam baris 1 dan uji Userform.

Seorang pengajar dan pembelajar yang mengurus lembaga pelatihan dan kursus komputer bernama LKP Naura