Range : Find & FindNext

Dalam menggunakan VBA seringkali kita harus mencari data tertentu dalam sebuah range di worksheet.

Jika kamu akan membuat sebuah sistem misalnya CRUD, fungsi FIND ini akan banyak sekali digunakan.

Misalnya untuk Read, Update dan Delete ini pasti memerlukan Fungsi FIND karena harus mencari data pada range area simpan.

Apa itu Fungsi FIND dalam VBA?

Fungsi FIND adalah bagian dari VBA yang memungkinkan untuk melakukan pencarian data dalam cell atau range tertentu dalam lembar kerja Excel.

Fungsi ini mengembalikan Objek Range yang mengandung informasi tentang hasil pencarian, termasuk lokasi pertama ditemukannya data yang dicari.

Sintaksis Dasar Fungsi FIND

Berikut adalah sintaksis dasar dari fungsi FIND dalam VBA:

rangeObj.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase)
  • rangeObj: Adalah rentang sel di mana Anda ingin melakukan pencarian.
  • What: Merupakan nilai yang ingin Anda cari.
  • After: Merupakan sel tempat pencarian akan dimulai. Biasanya, ini adalah sel setelah sel terakhir tempat Anda ingin mencari.
  • LookIn: Mengatur di mana pencarian akan dilakukan (misalnya, dalam nilai sel atau rumus).
  • LookAt: Mengatur apakah pencarian harus tepat sama persis atau dapat bersifat parsial.
  • SearchOrder: Mengatur urutan pencarian (baris demi baris atau kolom demi kolom).
  • SearchDirection: Mengatur arah pencarian (ke atas atau ke bawah).
  • MatchCase : Mengatur apakah pencarian harus memperhatikan huruf besar dan kecil.

Contoh Penggunaan Fungsi FIND

Berikut ini adalah contoh bagaimana Fungsi FIND dapat digunakan dalam VBA:

Sub CariData()
    Dim hasil As Range
    Dim kataKunci As String
    
    kataKunci = "Andi Setiadi" ' Kata atau nilai yang ingin dicari
    
    ' Lakukan pencarian dalam sel A1:A10 di lembar aktif
    Set hasil = ActiveSheet.Range("A1:A10").Find(kataKunci, LookIn:=xlValues, LookAt:=xlWhole)
    
    ' Periksa apakah hasil ditemukan
    If Not hasil Is Nothing Then
        MsgBox "Data ditemukan di sel " & hasil.Address
    Else
        MsgBox "Data tidak ditemukan"
    End If
End Sub

Pada contoh script diatas melakukan pencarian text “Andi Setiadi” pada range A1:A10, setelah ditemukan hasil akan langsung ditampilkan.

Dalam VBA Vlookup menggunakan FIND

vba.co.id

FindNext

FindNext adalah metode yang digunakan dalam VBA untuk melanjutkan pencarian setelah menggunakan metode Find pertama kali.

Metode ini berguna untuk menemukan semua kata kunci yang cocok dari nilai yang dicari dalam range atau didalam worksheet.

Sub CariDanTemukanSemua()
    Dim kataKunci As String
    Dim Hasil As Range, AreaCari as Range
    Dim Awal As String

    ' Kata atau nilai yang ingin dicari
    kataKunci = "Andi Setiadi" 
    
    ' Lakukan pencarian pertama dalam sel A1:A10 di lembar aktif
    Set AreaCari = ActiveSheet.Range("A1:A10")
    Set Hasil = AreaCari.Find(kataKunci, LookIn:=xlValues, LookAt:=xlWhole)
    
    ' Periksa apakah nilai ditemukan
    If Not Hasil Is Nothing Then
        
        ' Jika ditemukan, simpan alamat awal
        Awal = Hasil.Address
        
        ' Selama nilai masih ditemukan, teruskan mencari dengan FindNext
        Do
            ' Tampilkan alamat sel saat ini
            MsgBox "Data ditemukan di sel " & Hasil.Address
            
            ' Temukan sel berikutnya dengan nilai yang sama
            Set Hasil = AreaCari.FindNext(Hasil)
            
            ' Keluar dari loop jika kembali ke sel pertama
        Loop until Hasil.Address = Awal
    Else
        ' Jika nilai tidak ditemukan
        MsgBox "Data tidak ditemukan"
    End If
End Sub

Leave a Reply

Your email address will not be published. Required fields are marked *