Salam...,
Programing VBA yang saya buat kali ini adalah menampilkan data yang dicari dari database pada ListBox, hal ini tidak terlalu sulit tapi pada saat program dijalankan loading pencariannya akan agak sedikit lama, ini merupakan salah satu kelemahan dari pada Programing VBA ms.Excell.
Ok, Langsung saja...
Pertama Buka MS.Excell nya:
1. Siapkan Tabel Sheet Database nya ( Tabel tempat pencarian data ), yang saya buat kali ini Tabel Data Penerimaan Barang seperti berikut ;
2. Selanjutnya membuat Form pencarian, Klik Tab Developer pada Menu Bar Excell, lalu Klik Icon Visual Basic, Rancang lah Form nya seperti berikut :
3. Masukkan Coding nya seperti dibawah ini :
Private Sub CommandButton1_Click()
On Error Resume Next
Worksheets("Sheet1").Activate
Dim rngNames As Range
Dim arrNames
Dim arrResults
Dim lngRow As Long
If TextBox1.Value = "" Then
MsgBox "No.Surat Jalan masih Kosong..."
Me.TextBox1.SetFocus
Exit Sub
End If
With Worksheets("Sheet1")
Set rngNames = .Range("B3", .Range("B" & Rows.Count).End(xlUp))
End With
With rngNames
arrNames = Evaluate(.Address & "&CHAR(45)&ROW(" & .Address & ")")
End With
arrNames = Application.Transpose(arrNames)
arrResults = Filter(arrNames, TextBox1.Value)
ListBox1.Clear
UserForm_Activate
If UBound(arrResults) = -1 Then
ListBox1.AddItem "Data Tidak Ada"
Else
For i = LBound(arrResults) To UBound(arrResults)
lngRow = Mid(arrResults(i), InStrRev(arrResults(i), "-") + 1)
With ListBox1
.AddItem
.List(.ListCount - 1, 0) = Worksheets("Sheet1").Range("A" & lngRow)
.List(.ListCount - 1, 1) = Worksheets("Sheet1").Range("C" & lngRow)
.List(.ListCount - 1, 2) = Worksheets("Sheet1").Range("D" & lngRow)
.List(.ListCount - 1, 3) = Worksheets("Sheet1").Range("E" & lngRow)
.List(.ListCount - 1, 4) = Worksheets("Sheet1").Range("F" & lngRow)
.List(.ListCount - 1, 5) = Worksheets("Sheet1").Range("G" & lngRow)
End With
Next i
End If
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub UserForm_Activate()
ListBox1.Clear
ListBox1.ColumnCount = 6
With ListBox1
.AddItem
.List(.ListCount - 1, 0) = "Tanggal Transaksi"
.List(.ListCount - 1, 1) = "Name Supplier"
.List(.ListCount - 1, 2) = "Product Code"
.List(.ListCount - 1, 3) = "Description Prodcut"
.List(.ListCount - 1, 4) = "Standart Packing"
.List(.ListCount - 1, 5) = "Quantity"
.ColumnWidths = 100 & " , " & 120 & "," & 80 & " , " & 90 & ", " & 90 & "," & 80
End With
End Sub
4. Jalankan Programnya, caranya Klik tanda panah Hijau pada menu Bar
5. Masuk kata kunci data yang dicari, pada Tabel penerimaan yang saya buat adalah "No.Surat Jalan"
6. Klik Tombol cari, maka data yang berhubungan dengan "No.Surat Jalan" yang saya masukkan ditampilkan pada ListBox, seperti Gambar Berikut ini ;
Sekian Tutorial VBA MS.Excell Pencarian data pada Tabel Sheet database Excell untuk ditampilkan pada ListBox, silahkan dikembangkan.
Pelajari juga Tutorial berikut ini :
Memasukkan Data dari TextBox kedalam ListBox Pada VBAMs.Excell
Menyimpan Data dari ListBox kedalam Tabel Sheet Databse VBAMs.Excell
Cara Membuat Kartu Stok ( Stock Card ) Otomatis dengan VBA MS.Excell
Programing VBA yang saya buat kali ini adalah menampilkan data yang dicari dari database pada ListBox, hal ini tidak terlalu sulit tapi pada saat program dijalankan loading pencariannya akan agak sedikit lama, ini merupakan salah satu kelemahan dari pada Programing VBA ms.Excell.
Ok, Langsung saja...
Pertama Buka MS.Excell nya:
1. Siapkan Tabel Sheet Database nya ( Tabel tempat pencarian data ), yang saya buat kali ini Tabel Data Penerimaan Barang seperti berikut ;
2. Selanjutnya membuat Form pencarian, Klik Tab Developer pada Menu Bar Excell, lalu Klik Icon Visual Basic, Rancang lah Form nya seperti berikut :
3. Masukkan Coding nya seperti dibawah ini :
Private Sub CommandButton1_Click()
On Error Resume Next
Worksheets("Sheet1").Activate
Dim rngNames As Range
Dim arrNames
Dim arrResults
Dim lngRow As Long
If TextBox1.Value = "" Then
MsgBox "No.Surat Jalan masih Kosong..."
Me.TextBox1.SetFocus
Exit Sub
End If
With Worksheets("Sheet1")
Set rngNames = .Range("B3", .Range("B" & Rows.Count).End(xlUp))
End With
With rngNames
arrNames = Evaluate(.Address & "&CHAR(45)&ROW(" & .Address & ")")
End With
arrNames = Application.Transpose(arrNames)
arrResults = Filter(arrNames, TextBox1.Value)
ListBox1.Clear
UserForm_Activate
If UBound(arrResults) = -1 Then
ListBox1.AddItem "Data Tidak Ada"
Else
For i = LBound(arrResults) To UBound(arrResults)
lngRow = Mid(arrResults(i), InStrRev(arrResults(i), "-") + 1)
With ListBox1
.AddItem
.List(.ListCount - 1, 0) = Worksheets("Sheet1").Range("A" & lngRow)
.List(.ListCount - 1, 1) = Worksheets("Sheet1").Range("C" & lngRow)
.List(.ListCount - 1, 2) = Worksheets("Sheet1").Range("D" & lngRow)
.List(.ListCount - 1, 3) = Worksheets("Sheet1").Range("E" & lngRow)
.List(.ListCount - 1, 4) = Worksheets("Sheet1").Range("F" & lngRow)
.List(.ListCount - 1, 5) = Worksheets("Sheet1").Range("G" & lngRow)
End With
Next i
End If
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub UserForm_Activate()
ListBox1.Clear
ListBox1.ColumnCount = 6
With ListBox1
.AddItem
.List(.ListCount - 1, 0) = "Tanggal Transaksi"
.List(.ListCount - 1, 1) = "Name Supplier"
.List(.ListCount - 1, 2) = "Product Code"
.List(.ListCount - 1, 3) = "Description Prodcut"
.List(.ListCount - 1, 4) = "Standart Packing"
.List(.ListCount - 1, 5) = "Quantity"
.ColumnWidths = 100 & " , " & 120 & "," & 80 & " , " & 90 & ", " & 90 & "," & 80
End With
End Sub
4. Jalankan Programnya, caranya Klik tanda panah Hijau pada menu Bar
5. Masuk kata kunci data yang dicari, pada Tabel penerimaan yang saya buat adalah "No.Surat Jalan"
6. Klik Tombol cari, maka data yang berhubungan dengan "No.Surat Jalan" yang saya masukkan ditampilkan pada ListBox, seperti Gambar Berikut ini ;
Tutorial Video Klik Link Dibawah ini :
Sekian Tutorial VBA MS.Excell Pencarian data pada Tabel Sheet database Excell untuk ditampilkan pada ListBox, silahkan dikembangkan.
Pelajari juga Tutorial berikut ini :
Memasukkan Data dari TextBox kedalam ListBox Pada VBAMs.Excell
Salam...,
Mas, saya sudah coba terapkan, tapi dalam pencarian data sifatnya "Case sensitive". Besar dan kecil huruf harus sama persis antara yg di Input dengan data yang ingin di cari.
ReplyDeleteBagaimana cara menghilangkannya ?
kalo fikternya 2 kondisi (2 textbox) apa yang harus dirubah/tambahain yah pak di script code nya? terimakasih.
ReplyDeleteMas Bisa bantu kah, buatkan coding VBA pencarian Listbox
ReplyDeletekalau bisa saya share filenya