• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA code voor "find it" functie

Status
Niet open voor verdere reacties.

elmo112

Nieuwe gebruiker
Lid geworden
24 jan 2011
Berichten
4
hallo,

Ik heb een database opgesteld en hierbij wil ik op het voorblad een zoekfunctie maken. Ik heb met VBA een userform gemaakt welke goed werkt. Code userform:

Code:
Sub Locate(Name As String, Data As Range)

    Dim rngFind As Range
    Dim strFirstFind As String
    
    With Data
        Set rngFind = .Find(Name, LookIn:=xlValues, lookat:=xlPart)
        If Not rngFind Is Nothing Then
            strFirstFind = rngFind.Address
            Do
                If rngFind.Row > 1 Then
                    ListBox1.AddItem rngFind.Value
                    ListBox1.List(ListBox1.ListCount - 1, 1) = Data.Parent.Name
                    ListBox1.List(ListBox1.ListCount - 1, 2) = Data.Parent.Name & "!" & rngFind.Address
                End If
                Set rngFind = .FindNext(rngFind)
            Loop While Not rngFind Is Nothing And rngFind.Address <> strFirstFind
        End If
    End With
    
End Sub

Private Sub CommandButton1_Click()

    Dim shtSearch As Worksheet
    
    ListBox1.Clear
    For Each shtSearch In ThisWorkbook.Worksheets
        Locate TextBox1.Text, shtSearch.Range("A:C")
    Next
    If ListBox1.ListCount = 0 Then
        ListBox1.AddItem "No Match Found"
        ListBox1.List(0, 1) = ""
        ListBox1.List(0, 2) = ""
    End If
End Sub

Private Sub Label1_Click()

End Sub

Private Sub ListBox1_Click()

End Sub


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    
    Dim strSheet As String
    Dim strAddress As String
    
    strSheet = ListBox1.List(ListBox1.ListIndex, 1)
    strAddress = ListBox1.List(ListBox1.ListIndex, 2)
    If strAddress <> "" Then
        Worksheets(strSheet).Activate
        Range(strAddress).Activate
    End If
End Sub

ik heb op meerdere werkbladen data staan en vandaar 2 colommen in de userform. 1 geeft de zoekresultaten weer 1 welk tabblad. Wanneer je op de lijst klikt verspringt hij naar de juiste cel. Nu wil ik mijn userform wat uitbreiden maar ik kom er niet uit, hopelijk kunnen jullie mij helpen:

- Ik heb dubbelingen staan in mijn database (meerdere subcategorieën/hoofdcategorieën) hij geeft deze allemaal weer in de lijst. Ik zou eigenlijk willen dat hij deze dubbelingen niet meer weergeeft en alleen het eerste exemplaar in de reeks geeft en hierheen verwijst als je erop klikt.

-Ik wil wel dat hij zoek op meedere tabbladen maar niet op allemaal ik wil 2 tabbladen kunnen selecteren

Ik hoop dat jullie mij kunnen helpen,

Bedankt alvast!
 
Laatst bewerkt:
ik heb net dezelfde vraag gelezen op een ander forum, dat stoot tegen de ribben.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan