• 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.

Next knop om de volgende zelfde gegevens te vinden

Status
Niet open voor verdere reacties.

RMSpan

Gebruiker
Lid geworden
17 mrt 2022
Berichten
82
Goedemiddag

Ik wil het volgende bereiken:
In een excel sheet gegevens opzoeken en weergeven en bij dubbele gegevens deze met een next knop kunnen weergeven.
Ik heb in een sheet NAW gegevens van klanten ( in een verborgen tabblad) deze kan ik in een ander sheet oproepen middels VBAcode en dan worden zijn/haar gegevens getoond.

Code:
Sub Select_Data2()

' Search the data repository worksheet (Relaties) and return the found record into our form.


Dim sourceSheet As Worksheet
Dim dataSheet As Worksheet
Dim searchValue As Variant
Dim dataIdCol As Range
Dim recordRow As Integer


' Make some sheet variables .
Set dataSheet = Worksheets("Relaties")
Set sourceSheet = Worksheets("Gegevens")


' Column that contains the value for which we will search.
Set dataIdCol = dataSheet.Range("B:F")


' Value to search for.
searchValue = InputBox("Vul in zoekgegevens.", "Record Search")


' Check if the user input a value and hit the OK button.
If searchValue <> vbNullString Then
    'Value input, so search for it.
     
     ' Search
    Set Rng = dataIdCol.Find(What:=searchValue, _
            LookIn:=xlValues, _
            LookAt:=xlWhole, _
            SearchOrder:=xlByRows, _
            MatchCase:=False)
    
        ' Check if a record was found.
        If Not Rng Is Nothing Then
        ' Record found!
        
        ' Get the row of the record.
        recordRow = Rng.Row
        
          ' Put the records information back into the form.
            sourceSheet.Range("O5").Value = dataSheet.Cells(recordRow, 2).Value
            sourceSheet.Range("O7").Value = dataSheet.Cells(recordRow, 3).Value
            sourceSheet.Range("O9").Value = dataSheet.Cells(recordRow, 4).Value
            sourceSheet.Range("O11").Value = dataSheet.Cells(recordRow, 5).Value
            sourceSheet.Range("O13").Value = dataSheet.Cells(recordRow, 6).Value
            sourceSheet.Range("O15").Value = dataSheet.Cells(recordRow, 7).Value
            sourceSheet.Range("O17").Value = dataSheet.Cells(recordRow, 9).Value
            sourceSheet.Range("O19").Value = dataSheet.Cells(recordRow, 10).Value
            sourceSheet.Range("O24").Value = dataSheet.Cells(recordRow, 8).Value
        
          
    Else
        ' Nothing found, tell the user.
        MsgBox "Record not found."
        
    End If


End If


End Sub

Dit is de invulsheet waar de nieuwe gegevens worden ingevuld en kunnen worden weergegeven, veranderd en gewist.

Relatiescherm.jpeg

Tot zover werkt het naar volle tevredenheid, nu heb ik b.v. drie relaties die heten allemaal Piet.
Bij de huidige Vbacode wordt de eerste relatie Piet weergegeven, nu wil ik middels een knop de (zo die er is/zijn) de tweede relatie Piet weer kunnen geven.
Alle relaties hebben wel een unieke relatiecode maar die weet ik natuurlijk niet uit mijn hoofd, wel zijn/haar naam
Ik heb de volgende code gevonden bij Microsoft
Code:
Sub usingFindNext2()
With Worksheets(1).Range("a1:a500")    Set c = .Find(2, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Do
            c.Value = 5
            Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
End sub


en ben aan het stoeien geweest om deze in/aan te passen
Code:
Sub usingFindNext2()

Dim sourceSheet As Worksheet
Dim dataSheet As Worksheet
Dim searchValue As Variant
Dim dataIdCol As Range
Dim recordRow As Integer


With dataIdCol = dataSheet.Range("A:A")
On Error Resume Next
      
    searchValue = InputBox("Vul in zoekgegevens.", "Record Search")
    
    If searchValue <> vbNullString Then
    
        Set Rng = dataIdCol.Find(What:=searchValue, LookIn:=xlValues)
        
            If Not c Is Nothing Then
             firstAddress = dataIdCol.Address
        Do
            ' Put the records information back into the form.
            sourceSheet.Range("O5").Value = dataSheet.Cells(recordRow, 2).Value
            sourceSheet.Range("O7").Value = dataSheet.Cells(recordRow, 3).Value
            sourceSheet.Range("O9").Value = dataSheet.Cells(recordRow, 4).Value
            sourceSheet.Range("O11").Value = dataSheet.Cells(recordRow, 5).Value
            sourceSheet.Range("O13").Value = dataSheet.Cells(recordRow, 6).Value
            sourceSheet.Range("O15").Value = dataSheet.Cells(recordRow, 7).Value
            sourceSheet.Range("O17").Value = dataSheet.Cells(recordRow, 9).Value
            sourceSheet.Range("O19").Value = dataSheet.Cells(recordRow, 10).Value
            sourceSheet.Range("O24").Value = dataSheet.Cells(recordRow, 8).Value
        
       
            Set dataIdCol = .FindNext(dataIdCol)
        Loop While Not dataIdCol Is Nothing And dataIdCol.Address <> firstAddress
          End With
     End If


End Sub

En hier schiet mijn kennis duidelijk te kort, dit werkt zo niet
Heel graag wat hulp.
 
Plaats een voorbeeld van je document.
 
Laatst bewerkt:
Kijk eens naar dit:
 

Bijlagen

Meervoudig zoeken is filteren.
Gebruik Autofilter of geavanceerd filter.
 
Met een betere struktuur van je gegevens:

Code:
Sub ZoekRelatie()
  With Sheets("Relaties").ListObjects(1).DataBodyRange
    .AutoFilter 1, "*" & InputBox("Zoek naar: ", "Relatie") & "*"
    .Copy Sheets("gegevens").Cells(5, 15)
    .AutoFilter
  End With
End Sub
 
Heren geweldig bedankt voor jullie input.:thumb:
Met het voorbeeld van edmoor was ik al erg blij en half op weg, maar met de knoppen vorige en volgende blader je dan door het hele relatiebestand, dat was niet mijn bedoeling.
Met de aanpassingen van Sylvester-ponte heb ik voor mij de juiste oplossing.
Dat is precies wat ik wilde bereiken, bij het zoeken naar een relatie met, (bv de naam Jan) de eerste Jan in beeld en met de knop volgende kijken of er nog meer relaties met de naam Jan in het bestand zitten.


Nogmaals enorm bedankt ik ga weer verder sleutelen.

Groet René
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan