Wednesday, September 5, 2018

√ Pencarian Data Di Semua Worksheet Dengan Mudah

Hai para master excel, para pecinta excel masih tetap semangat mencar ilmu Ms. Excel dari dasar hingga dengan profesional. Mencari data pada database cukup memakan waktu yang usang dan hal ini tentunya akan menimbulkan kita merasa lelah untuk mencari satu per satu. Bayangkan bila Anda mempunyai data contohnya lebih dari 100.000 kemudian mencari salah satu nama contohnya nama karyawan tertentu untuk melihat datanya, wah Anda niscaya sudah dapat menghitungnya berapa usang pencarian data secara manual.



Ada langkah terbaik untuk mencari data dan biasanya cara ini akan dipakai dalam menciptakan sebuah aplikasi memakai VBA ya berbasis VBA atau dapat dikatakan Macro. Nah, pada kesempatan kali ini hal tersebut akan saya bahas dan kupas tuntas bagaimana cara menciptakan pencarian pada semua worksheet yang ada pada workbook dengan mudah.

Coding, ya tentunya saya gunakan suplemen coding untuk menciptakan pencarian data pada semua worksheet yang ada. Oke jangan banyak-banyak saya contohkan worksheet yang saya miliki yakni standar saja yaitu mempunyai 3 worksheet.

Langsung saja berikut coding yang harus Anda tuliskan pada VBA editor Anda :

Pertama Anda tambahkan atau definisikan beberapa perintah berikut
Dim JumlahSheet As Integer
Dim CariData
Setelah itu Anda harus menciptakan sebuah module yang nantinya akan dipanggil oleh command button dan berikut module yang harus Anda tuliskan :

Private Sub CariDataSemua()
    Dim counter As Integer
    Dim currentSheet As Integer
    Dim TidakDitemukan As Boolean
    Dim YesNo As String

    TidakDitemukan = True

    On Error Resume Next
    currentSheet = ActiveSheet.Index
    CariData = InputBox("Masukan kata kunci untuk pencarian")
    If CariData = "" Then Exit Sub
    JumlahSheet = ActiveWorkbook.Sheets.Count
    If IsError(CDbl(CariData)) = False Then CariData = CDbl(CariData)
    For counter = 1 To JumlahSheet
        Sheets(counter).Activate

        Cells.Find(What:=CariData, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate

        If InStr(1, ActiveCell.Value, CariData) Then
            If HasMoreValues(counter + 1) Then
                YesNo = MsgBox("Mau Melakukan Pencarian Lagi?", vbYesNo)
                If YesNo = vbNo Then
                    TidakDitemukan = False
                    Exit For
                End If
            End If
            Sheets(counter).Activate
        End If
    Next counter
    If TidakDitemukan Then
        MsgBox ("Tidak Ditemukan")
        Sheets(currentSheet).Activate
    End If
End Sub

Sudah menciptakan module diatas langkah berikutnya silakan buat sebuah coding kembali dan tambahkan dalam satu module

Private Function HasMoreValues(ByVal JumlahSheeter As Integer) As Boolean
    HasMoreValues = False
    Dim str As String

    For counter = JumlahSheeter To JumlahSheet
        Sheets(counter).Activate

        str = Cells.Find(What:=CariData, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Value

        If InStr(1, str, CariData) Then
            HasMoreValues = True
            Exit For
        End If
    Next counter
End Function


Nah, alasannya yakni saya akan memanggil perintah yang telah dituliskan melalui commandbutton atau Button1 yang telah diganti nama menjadi nama "Cari Data di Semua Sheet" maka seandainya Anda klik tombol diatas akan muncul sebuah kotak pesan yang harus Anda isi kata kunci apa yang akan Anda cari dan Anda disana harus menuliskan kata kunci yang akan dicari kemudian klik



Sumber http://www.excel-id.com/