Cara Membuat Form Interaktif dengan Excel VBA MAcro

Cara Membuat Form Interaktif dengan Excel VBA MAcro

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:

Formulir Pengguna Interaktif VBA Excel

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.

Pengaturan Layar Bentuk Pengguna di Excel VBA

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.

Baca Juga  MENAMBAHKAN NOMOR PADA SLIDE POWER POINT

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.

Baca Juga  Perintah Cari otomatis VBA Excel Melalui TextBox

 

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.

Formulir Pengguna Interaktif VBA Excel

 

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Need Help? Chat with us