AGUNG TUTORIAL

Belajar Bordir Wilcom dan Tajima Mesin SWF, VBA Macro Excel, Design Grafis CorelDraws, Video Editing, Download Software-software, Solusi Masalah Error Komputer, Jaringan dan Internet, Analisis Jaringan, Analisis Problem Hardware dan sebagainya

9/24/2018

METODE FIND() VBA MACRO EXCEL UNTUK MULTIPLE PENCARIAN PADA RANGE EXCEL

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.

Microsoft Excel sebenernya telah menyediakan feature pencarian data yaitu Find & Select.



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,


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

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

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,

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  

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 

Hasil dari Pencarian Multiple akan menjadi seperti di bawah ini,







SEMOGA BERMANFAAT

TERIMAKASIH BERKUNJUNG DI HTTPS://WWW.AGUNGPANDUAN.COM

Tidak ada komentar:

Posting Komentar