Anda di halaman 1dari 12

Home VBA Excel Edit Data Melalui UserForm VBA Excel

Edit Data Melalui UserForm VBA Excel


Penulis Taheu Teubingong Diterbitkan 4:18:00 PM
Tags
VBA Excel
Perhatikan gambar format gif dibawah..!! begitu maksud dari posting ini. Edit Data melalui
UserForm VBA Excel mengubah data yang terdapat dalam database. Edit data dilakukan untuk
mengubah informasi yang ada dalam database dikarena kesalahan atau untuk melengkapi data
yang benar. Ikuti langkah-langkah untuk membuat tombol edit data melalui UserForm VBA
Excel.

Langkah-langkah Edit Data Melalui UserForm VBA Excel :

Buka Visual Basic File Aplikasi Data (download di Posting Tombol Simpan VBA Excel)

Buat 1 buah CommandButton ubah Name "CmdEdit" ubah Caption "EDIT" Melalui
Properties

Klik Kanan pilih View Code CmdEdit masukkan kode dibawah ini

Private Sub CmdEdit_Click()


Dim Ws As Worksheet: Set Ws = Worksheets("DB")
Dim C As Range
Dim Baris As Long
If TxtNoInduk.Value = "" Then
MsgBox "Double Klik Untuk Pilih Data Yang Akan Di Edit", 16, "Aplikasi Data"
Exit Sub: End If
If MsgBox(" Anda Mau Ngedit Data : " & TxtNamaSiswa.Value, vbYesNo + 48, "Komfirmasi") =
vbYes Then
Set C = Ws.Range("B4:B1000").Find(TxtNoInduk.Value, LookIn:=xlValues)
If Not C Is Nothing Then
Baris = C.Row
With Ws
.Cells(Baris, 2).Value = TxtNoInduk.Value
.Cells(Baris, 3).Value = TxtNamaSiswa.Value
.Cells(Baris, 4).Value = IIf(Me.OptLaki.Value = True, "Laki-Laki", "Perempuan")
.Cells(Baris, 5).Value = TxtAlamat.Value

End With
End If
Call ListDB
MsgBox "Data Telah DiRubah...", 64, "Aplikasi Data"
Else
Call CmdBatal_Click
MsgBox "Batal Edit Ya...", 64, "Aplikasi Data"
End If
End Sub

Selesai..!! Jalankan Aplikasinya dengan menekan F5..!!

Google Face
Home VBA Script Input, Edit, Reset Dan Move Untuk Newbie

Script Input, Edit, Reset Dan Move Untuk Newbie


Penulis By Anang Utama on 23 February 2015 | 2 comments

Kali ini saya ingin berbagi artikel lagi tentang Excel VBA, yaitu tentang sourcecode atau dalam bahasa
Jawanya Script. Script yang sering di pakai sehari-hari oleh seorang programer untuk membuat aplikasi.
Karena saya masih newbie maka artikel ini juga untuk pembaca yang baru belajar Excel VBA. Ok langsung
aja kita meluncur ke TKP :
Yang pertama saya akan tunjukkan dulu gambar sheet databasenya :

Keterangan :
Untuk menghemat memori biasakan pake rumus " Offset "
1. Pada Tab Formulas => Define Name => Namenya tulis : " Kode " lalu rumus formulanya :
" =OFFSET(Sheet2!$A$4;0;0;COUNTA(Sheet2!$A:$A)-1;2)"
2. Pada Tab Formulanya tulis lagi namenya : " Barang " lalu rumus formulanya :
" =OFFSET(Sheet1!$A$2;0;0;COUNTA(Sheet1!$A:$A)-1;3)"
Nah sekarang untuk sheetnya dah selesai. Lalu kita menginjak pada scriptnya.
Langkah yang kedua adalah kita membuat Form terlebih dahulu. Untuk cara membuat Formnya tidak
saya jelaskan disini, karena saya menganggap pembaca semua sudah mengerti bagaimana cara membuat
Formnya. Sepertinya semua dah beres tinggal script yang belum.
Script Input Data :

Script Ubah atau Edit :


Script Delete atau Hapus :

Script Reset :

Script Pindah :
Akhirnya selesai juga bagaimana cara membuat Aplikasi tentang Input Data, Edit Data dll.
Semoga bermanfaat, Salam

MEMBUAT ENTRI CARI SIMPAN EDIT HAPUS DENGAN MACRO EXCEL

Private Sub cmdCari_Click()


Dim KodeSiswa
Dim CellTujuan As Range

KodeSiswa = txtKodeSiswa.Text
Set CellTujuan = Range("B:B").Find(What:=KodeSiswa)
If Not CellTujuan Is Nothing Then
txtNamaSiswa.Text = Cells(CellTujuan.Row, 3)
cmbProgramStudi.Text = Cells(CellTujuan.Row, 4)
If Cells(CellTujuan.Row, 5) = "Laki-laki" Then
optLakiLaki.Value = True
ElseIf Cells(CellTujuan.Row, 5) = "Perempuan" Then optPerempuan.Value = True
End If
txtTempatLahir.Text = Cells(CellTujuan.Row, 6)
Else
MsgBox "Tidak Ada Hasil !"
End If
End Sub

Private Sub cmdTambah_Click()

Dim baris As Integer

baris = WorksheetFunction.CountA(Range("B:B"))

baris = baris + 1

Cells(baris, 2) = txtKodeSiswa
Cells(baris, 3) = txtNamaSiswa
Cells(baris, 4) = cmbProgramStudi
If optLakiLaki = True Then
Cells(baris, 5) = "Laki-laki"
ElseIf optPerempuan = True Then
Cells(baris, 5) = "Perempuan" End If

Cells(baris, 6) = txtTempatLahir

Cells(baris, 7) = txtTanggalLahir
End Sub
Private Sub cmdUbah_Click() Dim KodeSiswa

Dim CellTujuan As Range

KodeSiswa = txtKodeSiswa.Text

Set CellTujuan = Range("B:B").Find(What:=KodeSiswa)

Cells(CellTujuan.Row, 2) = txtKodeSiswa Cells(CellTujuan.Row, 3) =


txtNamaSiswa Cells(CellTujuan.Row, 4) = cmbProgramStudi If optLakiLaki
= True Then Cells(CellTujuan.Row, 5) = "Laki-laki" ElseIf optPerempuan
= True Then Cells(CellTujuan.Row, 5) = "Perempuan"

End If

Cells(CellTujuan.Row, 6) = txtTempatLahir Cells(CellTujuan.Row, 7)


=txtTanggalLahir End Sub

Private Sub cmdHapus_Click() Dim KodeSiswa


Dim CellTujuan As Range

KodeSiswa = txtKodeSiswa.Text
Set CellTujuan =Range("B:B").Find(What:=KodeSiswa)

Rows(CellTujuan.Row).Delete Shift:=xlUp

End Sub
Filter data dengan textbox hasil didalam listbox

Filter data digunakan unutk mencari data tertentu pada data yang anda miliki dalam workbook yang
sudah mencapai ribuan baris atau labih, filter data bisa dilakukan langsung dengan cara menekan
kompbinasi tombol Ctrl dan tombol F ( Ctrl + F ), namun jika ingin tampil berbeda anda bisa melakukan
filter data dengan fitur ataufungsi buatan sendiri, berikut ini caranya

Download terlebih dahulu file latihannya pada link download dibawah ini

Download Filter data dengan textbox hasil didalam listbox


Cara download Adfly
Klik link download anda akan dialihkan ke situs Adfly
Tunggu selama 5 detik kemudian klik SKIPE

Buka file hasil download tadi


Masuk kesheet "Data" anda akan menemukan contoh database yang telah saya buat sebelumnya

Langkah selanjutnya tekan tombol Alt kemudia tekan tombol F11 pada keybord anda guna masuk
kejendela Visual basic editor
Lihat menu bar atas, pilih Insert dan Tambahkan Userform
Kemudian pada objek userform masukan kontrol Textbox, Commandbutton, dan listbox
Jika sudah maka tampilanya sebagai berikut
Sampai disini kita pahami terlebih dahulu apa yang akan anda filter dan kriteria apa yang akan anda
gunakan sebagai keyword untuk menfilter, disini saya akan menfilter database yang ada pada sheet
"Data" dengan keyword "Nama Siswa" yang ada pada kolom A.

Perhatikan pada kolom J, perhatikan lagi pada kolom J baris ke 2 (J2), perhatikan pada kolom A baris ke 2
(A2).
Sebelum membuat filter data, berikut ini adalah kode macro untuk menampilkan semua data yang
ada disheet "Data"

Sub TampilkanSemua()
Set wsDtbsPlgn = Sheets("Data")
ListBox1.Clear
ListBox1.ColumnCount = 6
ListBox1.ColumnWidths = 80 & ";" & 25 & ";" & 35 & ";" & 65 & ";" & 120
Set rgTampil = wsDtbsPlgn.Range("A1:A100").SpecialCells(xlCellTypeVisible)
For Each i In rgTampil
With ListBox1
.AddItem
.List(.ListCount - 1, 0) = i.Value
.List(.ListCount - 1, 1) = i.Offset(0, 1).Value
.List(.ListCount - 1, 2) = i.Offset(0, 2).Value
.List(.ListCount - 1, 3) = i.Offset(0, 3).Value
.List(.ListCount - 1, 4) = i.Offset(0, 4).Value
End With
Next i
End Sub

Selanjutnya berikut adalah kode macro untuk membuat filter data dengan textbox kemudian hasil
filter ditampilkan kedalam Listbox, letakan kode macronya kedalam event Commandbutton klik

Private Sub CommandButton1_Click()


Set wsDtbsPlgn = Sheets("Data")
Set rgDtbsPlgn = wsDtbsPlgn.Range("A2:G100")
Set rgAdvFilter = wsDtbsPlgn.Range("J2:J3")
wsDtbsPlgn.Range("J3").Value = TextBox1.Value
rgDtbsPlgn.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=rgAdvFilter
Call TampilkanSemua
'Abaikan kode ini
If wsDtbsPlgn.FilterMode Then
wsDtbsPlgn.ShowAllData
End If
End Sub

Sekarang untuk mencobanya, tekan F5, masukan kata "Sukardi" pada textbox kemudian klik tombol
Cari, lihat hasilnya

Keterangan Kode macro Filter data dengan textbox hasil didalam listbox
Perhatikan contoh kode macro dibawah ini yang saya ambil dari kode macro diatas

Set wsDtbsPlgn = Sheets("Data")


Set rgDtbsPlgn = wsDtbsPlgn.Range("A2:G100")
Set rgAdvFilter= wsDtbsPlgn.Range("J2:J3")
rgDtbsPlgn.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=rgAdvFilter

Jika seandainya kita membuang tiga baris pertama maka kode macronya bisa menjadi seperti ini

Sheets("Data").Range("A2:G100").AdvancedFilter Action:=xlFilterInPlace,
CriteriaRange:=Sheets("Data").Range("J2:J3")

Dengan kata lain kode macro Sheets("Data").Range("A2:G100") merupakan database yang kita miliki
terletak disheet "Data" pada kolom A2 sampai G100, jika data yang anda miliki lebih dari itu maka
silahkan rubah sesuai kebutuhan, misalnya data yang anda miliki adalah dari kolom A1 sampai Y1000,
dan seterusnya.

Kemudian kode macro Sheets("Data").Range("J2:J3") merupakaan tempat tujuan filter Perhatikan pada
kolom J, perhatikan lagi pada kolom J baris ke 2 (J2), perhatikan pada kolom A baris ke 2 (A2).

Filter tidak akan berfungsi jika dalam satu database terdapat baris kosong, berikut ini contoh database
yang salah sehingga filter terkadang error

NO NIS NAMA SISWA L/P TINGKAT ALAMAT

1 NIK0005 Wasis Zain L 3 Parengan Tuban

2 NIK0006 Sutikno L 3 Parengan Tuban

3 NIK0007 Zaenal Arifin L 3 Parengan Tuban

5 NIK0009 Darso L 2 Parengan Tuban

6 NIK00010 Fadli L 2 Parengan Tuban

7 NIK00011 Mbak Rida P 3 Parengan Tuban

Sedangkan database yang benar sebagaimana data pada file yang sudah anda download diatas

NO NIS NAMA SISWA L/P TINGKAT ALAMAT

1 NIK0005 Wasis Zain L 3 Parengan Tuban

2 NIK0006 Sutikno L 3 Parengan Tuban

3 NIK0007 Zaenal Arifin L 3 Parengan Tuban

4 NIK00012 Mubin L 3 Parengan Tuban


5 NIK0009 Darso L 2 Parengan Tuban

6 NIK00010 Fadli L 2 Parengan Tuban

7 NIK00011 Mbak Rida P 3 Parengan Tuban

Silahkan download file hasil Filter data dengan textbox hasil didalam listbox pada link download dibawah
ini agar anda lebih dapat memahami artikel kali ini, semoga bermanfaat.

Anda mungkin juga menyukai