CARI DATA MENGGUNAKAN METODE FIND() VBA MACRO EXCEL
Dalam proses mencari data pada VBA Macro Excel pastinya
akan melibatkan indeks baris dan kolom sehingga akan ada proses looping. Untuk
itu selalu perhatikan tipe data setiap variable. Misalkan variable bertipe Interger atau Long.
Fungsi
Find VBA Macro Excel menggunakan
sebagian besar opsi seperti pada gambar Dialog
Find & Select di atas.
Untuk menggunakan fungsi Find ini memerlukan sebuah Range
sebagai parameter atau acuan lokasi pencarian sepertihalnya ketika menggunakan Formula SUM misalkan SUM(“A1:C2”). Fungsi Find pada VBA ini
menggunakan cara yang sama seperti fungsi SUM dalam memanfaatkan sebuah Range
sebagai Parameter.
Dimana script Fungsi FIND VBA adalah sebagai berikut,
Dimana script Fungsi FIND VBA adalah sebagai berikut,
Keterangan:
- What adalah Nilai yang akan dicari
- After adalah Pencarian akan dimulai pada Range tertentu atau pada cell tertentu
- LookIn, jika xlValue berarti yang dicari bertipe nilai, xlComments berarti yang dicari komentar yang diisikan pada cell tertentu, xlFormula berarti data yang dicari bertipe Formula.
- LookAt, jika xlWhole berarti nilai pencarian yang dicari harus sesuai dengan seluruh sel sedangkan xlPart berarti nilai pencarian hanya harus mencocokkan dengan bagian sel.
- SearchOrder, Jika xlRows berarti proses pencarian secara vertikal atau pencarian dimulai dari baris satu ke baris lainnya sedangkan xlColumns berarti proses pencarian secara horizontal atau pencarian dimulai dari kolom satu ke kolom lainnya.
- SearchDirection, jika xlNext berarti pencarian berlanjut ke indeks selanjutnya sedangkan xlPrevious berarti pencarian menuju ke indeks sebelumnya.
- MatchCase, parameter MathCase digunakan untuk menentukan apakah besar kecilnya suatu huruf menjadi begitu penting atau tidak. Sehingga apabila yang digunakan adalah True maka perbandingan besar kecilnya huruf pada Nilai yang dicari harus sama dengan Kata Kunci Pencarian. Sedangkan yang digunakan adalah False maka besar kecilnya huruf tidak menjadi begitu penting tetap hasil akan tampil.
Fungsi Find VBA Macro Excel Untuk Multiple Pencarian
Dalam
banyak kasus, Anda akan mencari beberapa kejadian dengan nilai yang sama. Untuk
melakukan ini kita akan menggunakan fungsi Find terlebih dahulu lalu
menggunakan fungsi FindNext untuk menemukan nilai item lainnya dengan ciri-ciri
yang sama.
Terkadang kita tidak tahu berapa banyak data yang sama.
Dalam hal ini untuk mengetahuinya digunakan sebuah loop untuk terus mencari
hingga menemukan semua item. Setelah menemukan item pertama dengan menggunakan
Find() selanjutnya untuk mencari item yang lainnya menggunakan Do Loop dengan
FindNext().
Menemukan
Nilai Cell Yang Satu Baris atau Satu Kolom dengan Data yang dicari dapat
menggunakan kode dibawah ini,
BarisTerakhir = Cells(Rows.count,1).End(xlUp.row)
KolomTerakhir=Cells(1, Columns.Count).End(xltoLeft).Column
Menemukan Cells yang memiliki tulisan yang diawali dengan
Huruf tertentu.
Sub PatternMatch()
Dim Cell As Range
For Each cell in Range(“A1:A6”)
If cell Like “[E]*” then
Debug.Print cell
End if
Next
End Sub
Menemukan Nilai Dengan Array dan Menghitung Jumlah Yang Ditemukan
Sub PatternMatch()
Dim Cell As Range
For Each cell in Range(“A1:A6”)
If cell Like “[E]*” then
Debug.Print cell
End if
Next
End Sub
Menemukan Nilai Dengan Array dan Menghitung Jumlah Yang Ditemukan
Adapun selain pencarian dengan menggunakan Find() dimana
dengan jumlah angka yang yang besar maka menggunakan looping sebuah array
menjadi langkah yang lebih baik. Kita dapat membaca Banya Cell dengan cepat dan efisien,
Kode berikut ini akan membaca nilai Cell ke Array dan
kemudian menghitung jumlah item dari array tersebut.
Sub UseArrayToCount()
Dim arr As Variant
Arr=Sheet2.Range(“A1:B25”).value
Dim name As Variant, cnt As Long
For Each name In Arr
If name=”Ray” Then
Cnt=cnt+1
End if
Next name
Debug.Print “Jumlah data yang ditemukan adalah sebanyak: “ & cnt
End Sub
Sub UseArrayToCount()
Dim arr As Variant
Arr=Sheet2.Range(“A1:B25”).value
Dim name As Variant, cnt As Long
For Each name In Arr
If name=”Ray” Then
Cnt=cnt+1
End if
Next name
Debug.Print “Jumlah data yang ditemukan adalah sebanyak: “ & cnt
End Sub
CONTOH KASUS MENCARI DATA DENGAN MENGGUNAKAN VBA MACRO EXCEL
Salah satu contoh kasus yang dapat digunakan untuk mencari
nilai tertentu dengan menggunakan Metode Find() adalah Contoh Cara Input Data
pada Artikel sebelumnya. Dimana isi pada Tabel Referensi adalah beberapa nama
dan nomor telepon.
Perhatikan Tabel atau Gambar berikut ini,
Perhatikan Tabel atau Gambar berikut ini,
Dari gambar diatas menunjukan Tombol Cari InputBox akan menggunakan KataKunci Pencarian akan diisikan
pada Pesan Dialog Input Box sedangkan Tombol Textbox, kata kunci yang akan
digunakan berasal dari textbox yang berada pada sebelah kanan label Cari atau
yang bertuliskan huruf “a”. Untuk menunjukan lokasi data ditemukan akan
digunakan kode pewarnaan yaitu Interior.ColorIndex.
Dimana warna yang digunakan adalah warna kuning.
Adapun fungsi yang dapat digunakan adalah sebagai berikut,
Sub Cari_Data_InputBox()
Dim KataKunci As String 'Katakunci adalah Nilai yang dicari
Dim Rng As Range
KataKunci = InputBox("Masukan Data yang dicari")
If Trim(KataKunci) <> "" Then
With Sheet1.Range("N1:N20")
Set Rng = .Find(what:=KataKunci, after:=Range("N5"), LookIn:=xlValues, lookat:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
If Not Rng Is Nothing Then
Rng.Interior.ColorIndex = 6 'UNTUK MEWARNA HASIL PENCARIAN PADA CELL
Range("$O$" & Rng.Row).Interior.ColorIndex = 6
Application.Goto Rng, True
Else
MsgBox "Data Tidak Ada"
End If
End With
End If
End Sub
Sub Cari_Data_Textbox()
Dim KataKunci As String
Dim Rng As Range
KataKunci = txtCari.Text
If Trim(KataKunci) <> "" Then
With Sheet1.Range("N1:N20")
Set Rng = .Find(what:=KataKunci, after:=Range("N5"), LookIn:=xlValues, lookat:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
'Set Rng = .FindNext(.Cells(3, 1))
If Not Rng Is Nothing Then
Rng.Interior.ColorIndex = 6 'UNTUK MEWARNA HASIL PENCARIAN PADA CELL, UNTUK HAPUS XLCOLORINDEXNONE
Range("$O$" & Rng.Row).Interior.ColorIndex = 6
Application.Goto Rng, True
Else
MsgBox "Data Tidak Ada"
End If
End With
End If
End Sub
Lalu panggillah kedua fungsi tersebut dengan “Call” yang
disimpan didalam Private CommandButton.
Private Sub btnCariInputBox_Click()
Call Cari_Data_InputBox
End Sub
Private Sub btnCariTextBox_Click()
Call Cari_Data_Textbox
End Sub
Private Sub btnCariInputBox_Click()
Call Cari_Data_InputBox
End Sub
Private Sub btnCariTextBox_Click()
Call Cari_Data_Textbox
End Sub
Hasilnya akan menjadi seperti ini,
Sedangkan untuk pencarian banyak data yang sama atau
Multiple Pencarian gunakan kode berikut ini,
Private Sub CariMultiple_Click()
Call MultiplePencarian
End Sub
Sub MultiplePencarian()
Dim KataKunci As String: KataKunci = txtCari.Text
Dim RangeCari As Range
Set RangeCari = Range("N5:N20")
Dim cell As Range
Set cell = RangeCari.Find(KataKunci)
'HTTPS://AGUNGPANDUAN.BLOGSPOT.CO.ID
If cell Is Nothing Then
MsgBox ("Not Found")
Exit Sub
End If
Dim NilaiCellPertama As String
NilaiCellPertama = cell.Address
Do
'Debug.Print "Found: " & cell.Address
cell.Interior.ColorIndex = 6
Range("$O$" & cell.Row).Interior.ColorIndex = 6
Set cell = RangeCari.FindNext(cell)
Loop While NilaiCellPertama <> cell.Address
End Sub
BACA JUGA:
SEMOGA BERMANFAAT
TERIMAKASIH BERKUNJUNG DI HTTPS://WWW.AGUNGPANDUAN.COM
Share This :
0 Comments