Pada artikel ini, kita akan membahas tentang cara membuat input box di VBA Excel, cara membuat aplikasi VBA Excel input data pada file berbeda, cara membuat form input data siswa berbasis Excel, cara otomatis membuat form input di Excel tanpa macro VBA, dan cara membuat kalender/tanggal pada userform VBA Excel. Kita juga akan menyertakan FAQ dan video Youtube sebagai tambahan informasi.
Cara Membuat Input Box di VBA Excel
Input box pada VBA Excel dapat digunakan untuk meminta input dari pengguna ketika berinteraksi dengan aplikasi. Input yang diminta dapat berupa teks, angka, atau kombinasi dari keduanya. Berikut adalah cara membuat input box di VBA Excel:
- Buka aplikasi Excel dan tekan Alt + F11 untuk membuka editor VBA.
- Buat modul baru dengan mengklik kanan pada proyek dan memilih “Insert” > “Module”.
-
Tuliskan kode berikut:
Sub InputBoxDemo() Dim name As String name = InputBox("What is your name?") MsgBox "Hello " & name & "!" End Sub
Kode di atas akan membuat input box yang akan meminta pengguna untuk memasukkan namanya. Setelah pengguna memasukkan namanya, kode akan menampilkan pesan “Hello” dan nama pengguna.
Jika ingin menampilkan input box dengan tipe data selain teks, seperti angka, kita bisa menambahkan tipe data pada kode, sebagai contoh:
Sub InputBoxDemo() Dim age As Integer age = InputBox("What is your age?", "Age Input", 20) MsgBox "You are " & age & " years old." End Sub
Kode di atas akan membuat input box yang akan meminta pengguna untuk memasukkan umurnya. Input box ini memiliki judul “Age Input”, nilai awal 20, dan akan menerima input dengan tipe data integer.
- Tekan F5 atau klik tombol “Run” untuk menjalankan kode VBA. Akan muncul input box untuk meminta input dari pengguna.
Cara Membuat Aplikasi VBA Excel Input Data Pada File Berbeda
Kadang-kadang kita perlu memasukkan data dari beberapa file Excel ke dalam satu file Excel yang terpisah. Kita dapat menggunakan VBA untuk membuat aplikasi Excel yang dapat memproses data dari file-file tersebut dan menyimpan hasilnya pada file Excel terpisah. Berikut adalah cara membuat aplikasi VBA Excel input data pada file berbeda:
- Buka aplikasi Excel dan tekan Alt + F11 untuk membuka editor VBA.
- Buat UserForm baru dengan mengklik kanan pada proyek dan memilih “Insert” > “UserForm”.
- Buat dua Textbox pada UserForm dengan mengklik ikon Textbox pada toolbox dan menariknya pada form. Beri nama masing-masing Textbox sebagai “txtData” dan “txtFile”.
- Buat satu tombol CommandButton pada UserForm dengan mengklik tombol CommandButton pada toolbox dan menariknya pada form. Beri nama tombol sebagai “btnProcess”.
-
Klik dua kali pada tombol “btnProcess” untuk membuka editor VBA dan tuliskan kode berikut:
Private Sub btnProcess_Click() Dim filePath As String Dim ws As Worksheet Dim cel As Range Dim fileName As String Dim fileData As String filePath = txtFile.Value fileName = Dir(filePath & "\*xlsx") Do While fileName <> "" Set ws = Workbooks.Open(filePath & "\" & fileName).Sheets(1) For Each cel In ws.UsedRange fileData = fileData & cel.Value & "," Next cel fileData = Left(fileData, Len(fileData) - 1) txtData.Value = txtData.Value & fileData & vbCrLf ws.Parent.Close False fileData = "" fileName = Dir Loop End Sub
Kode di atas akan membuat aplikasi Excel yang dapat memproses data dari semua file Excel yang ada pada folder yang telah ditentukan. Setiap file Excel akan dibuka dan data yang ada pada setiap sel pada worksheet pertama akan dikelompokkan menjadi satu string dengan pemisah koma (,) dan disimpan ke dalam variabel “fileData”. Variabel ini kemudian ditambahkan ke dalam Textbox “txtData” pada UserForm.
-
Klik dua kali pada tombol CommandButton “btnFile” untuk membuka editor VBA dan tuliskan kode berikut:
Private Sub btnFile_Click() Dim fileDialog As FileDialog Set fileDialog = Application.FileDialog(msoFileDialogFolderPicker) fileDialog.Show txtFile.Value = fileDialog.SelectedItems(1) End Sub
Kode di atas akan membuat dialog untuk memilih folder tempat file-file Excel yang ingin diproses. Path dari folder yang dipilih akan disimpan pada Textbox “txtFile” pada UserForm.
- Tekan F5 atau klik tombol “Run” untuk menjalankan aplikasi. Akan muncul UserForm yang meminta pengguna untuk memilih folder dan menampilkan data yang diproses dari file-file Excel yang ada di folder tersebut.
Cara Membuat Form Input Data Siswa Berbasis Excel
Form input data dapat membantu kita untuk memasukkan data dengan lebih mudah dan terstruktur. Dalam contoh ini, kita akan membuat form input data siswa berbasis Excel dengan menggunakan VBA. Berikut adalah langkah-langkahnya:
- Buka aplikasi Excel dan tekan Alt + F11 untuk membuka editor VBA.
- Buat UserForm baru dengan mengklik kanan pada proyek dan memilih “Insert” > “UserForm”.
- Buat enam Label pada UserForm dengan mengklik ikon Label pada toolbox dan menariknya pada form. Beri nama masing-masing Label sebagai “lblName”, “lblGender”, “lblClass”, “lblAddress”, “lblPhone”, dan “lblEmail”. Isi Label dengan teks yang diinginkan, sebagai contoh “Name:”, “Gender:”, “Class:”, “Address:”, “Phone:”, dan “Email:”.
- Buat enam TextBox pada UserForm dengan mengklik ikon TextBox pada toolbox dan menariknya pada form. Beri nama masing-masing TextBox sebagai “txtName”, “txtGender”, “txtClass”, “txtAddress”, “txtPhone”, dan “txtEmail”.
- Buat satu tombol CommandButton pada UserForm dengan mengklik tombol CommandButton pada toolbox dan menariknya pada form. Beri nama tombol sebagai “btnSubmit”.
-
Klik dua kali pada tombol “btnSubmit” untuk membuka editor VBA dan tuliskan kode berikut:
Private Sub btnSubmit_Click() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Data Siswa") ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = txtName.Value ws.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Value = txtGender.Value ws.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0).Value = txtClass.Value ws.Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Value = txtAddress.Value ws.Cells(Rows.Count, 5).End(xlUp).Offset(1, 0).Value = txtPhone.Value ws.Cells(Rows.Count, 6).End(xlUp).Offset(1, 0).Value = txtEmail.Value MsgBox "Data siswa berhasil disimpan." txtName.Value = "" txtGender.Value = "" txtClass.Value = "" txtAddress.Value = "" txtPhone.Value = "" txtEmail.Value = "" End Sub
Kode di atas akan menyimpan data yang diinputkan pada Form Input ke dalam worksheet “Data Siswa” pada file Excel. Setiap data akan disimpan pada baris yang kosong pada kolom yang sesuai. Setelah data disimpan, pesan “Data siswa berhasil disimpan” akan muncul dan TextBox akan dikosongkan kembali agar pengguna dapat memasukkan data baru.
- Tekan F5 atau klik tombol “Run” untuk menjalankan aplikasi. Akan muncul UserForm yang meminta pengguna untuk memasukkan data siswa.
Cara Otomatis Membuat Form Input di Excel Tanpa Macro VBA
Dalam contoh ini, kita akan belajar cara membuat form input di Excel tanpa macro VBA. Kita akan menggunakan fitur yang disebut “Form” yang tersembunyi dalam Excel. Berikut adalah langkah-langkahnya:
- Buka aplikasi Excel dan pilih worksheet yang ingin digunakan untuk form input.
- Klik “File” > “Options”.
- Pilih “Customize Ribbon” > “Main Tabs” > “Developer” > “Insert” > “Form Control”. Klik “Add” dan kemudian “OK”.
-
Klik tab “Developer” dan pilih ikon “Insert”.
- Pilih “Form Control” > “Button”. Gambar tombol kemudian akan muncul di worksheet.
-
Klik kanan pada tombol dan pilih “Assign Macro”. Ketik “UserForm1.Show” pada kolom “Macro Name” dan klik “OK”.
-
Klik dua kali pada tombol untuk membuka editor VBA dan tuliskan kode berikut:
Sub UserForm1() Dim frm As Object Set frm = ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls.Add("Forms.Frame.1", "Frame1", True) With frm .Caption = "Data Input Form" .ScrollBars = fmScrollBarsNone .Top = 10 .Width = 200 .Height = 70 End With Dim lblName As Object Dim tbName As Object Set lblName = frm.Controls.Add("Forms.Label.1", "lblName", True) Set tbName = frm.Controls.Add("Forms.TextBox.1", "tbName", True) With lblName .Caption = "Name:" .Left = 10 .Top = 10 End With With tbName .Left = lblName.Width + 10 .Top = 10 End With Dim lblAge As Object Dim tbAge As Object Set lblAge = frm.Controls.Add("Forms.Label.1", "lblAge", True) Set tbAge = frm.Controls.Add("Forms.TextBox.1", "tbAge", True) With lblAge .Caption = "Age:" .Left = 10 .Top = lblName.Top + lblName.Height + 10 End With With tbAge .Left = lblAge.Width + 10 .Top = lblName.Top + lblName.Height + 10 End With Dim btnSave As Object Set btnSave = frm.Controls.Add("Forms.CommandButton.1", "btnSave", True) With btnSave .Caption = "Save" .Left = 10 .Top = lblAge.Top + lblAge.Height + 10 .Width = 75 End With frm.Show End Sub
Kode di atas akan membuat UserForm yang akan muncul ketika tombol “Submit” pada worksheet di klik. UserForm ini akan meminta pengguna untuk memasukkan data yang kemudian dapat disimpan ke dalam worksheet.
- Tekan F5 atau klik tombol “Run” untuk menjalankan aplikasi. Akan muncul tombol “Submit” pada worksheet. Ketika tombol tersebut diklik, UserForm akan muncul dan meminta pengguna untuk memasukkan data.