Opgelost Aanpassing van de vba code

Dit topic is als opgelost gemarkeerd

Mark_68

Gebruiker
Lid geworden
17 mei 2024
Berichten
44
Ik heb de volgende vba code voor het zoeken van waardes in cellen.

Alleen nu geeft hij het adres weer in waar het staat, hier zou ik graag willen zien dat hij de waarde weergeeft van de gevonden cellen en als het mogelijk is heel de rij.


Code:
Dim ws As Worksheet

Dim lastrow As Long

Dim str As String

Dim rng As Range, rng2 As Range

Dim firstCell As String



Set ws = Sheets("Data")

lastrow = ws.Range("B" & Rows.Count).End(xlUp).Row

str = txtZoeken.Value



Set rng = ws.Range("B1:B" & lastrow).Find(What:=str, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)



If Not rng Is Nothing Then

ListBox1.AddItem rng.Address

firstCell = rng.Address

Set rng2 = rng



Do



Set rng2 = ws.Range("B1:B" & lastrow).FindNext(after:=rng2)

If Not rng2 Is Nothing Then

If rng2.Address = firstCell Then Exit Do

ListBox1.AddItem rng2.Address

Else

Exit Do

End If

Loop

Else

Exit Sub

End If
 
Laatst bewerkt door een moderator:
Tja, als je de lijst vult met rng.Address, krijg je natuurlijk nooit rng.Value :).
 
Ja inderdaad :) maar zou het ook nog kunnen dat heel de rij waar de waardes in gevonden zijn weer te geven
 
rng2.Row geeft je het juiste regelnummer.
 
Klopt maar het is de bedoeling dat alle waardes in die rij getoond worden het gaat om 6 kolommen

Hij zoekt in kolom B en wil dan graag dat van dezelfde rij kolom A, B, C, D, E en F getoond worden
 
Precies.
Dat kan je dan ophalen Cells(rng2.Row, "A"), Cells(rng2.Row, "B"), Cells(rng2.Row, "C") enz.
 
Dat ligt eraan hoe je de gegevens getoond wilt hebben.
Plaats eens een voorbeeld documentje waarin je je code gebruikt.
 
Wil ze graag naast elkaar in de listbox
De code zit onder de zoeken knop
 

Bijlagen

Je zoekt dan op waarde?
En als je dan zoekt naar 10 moet 100 ook gevonden worden?
 
Ja ik zoek inderdaad op waarde. Nee dan moet alleen de 10 gevonden worden
 
Zo?
 

Bijlagen

Nog wat bijgewerkt:
 

Bijlagen

Code:
Private Sub CmdZoeken_Click()
    With Sheets("Data").Cells(1).CurrentRegion
        Data = Filter(.Parent.Evaluate("transpose(if(" & Columns(2).Address & "=" & CLng(txtZoeken) & ",row(1:" & .Rows.Count & ")))"), False, 0)
        If UBound(Data) > -1 Then
            If UBound(Data) = 0 Then
                arr = Application.Index(.Value, CLng(Data(0)), 0)
                With ListBox1
                    .Clear: .AddItem
                    For i = 1 To UBound(arr): .List(0, i - 1) = arr(i): Next
                End With
            Else
                arr = Application.Transpose(Application.Index(.Value, Data, Application.Evaluate("Row(1:" & .Columns.Count & ")")))
                ListBox1.List = arr
            End If
        End If
    End With
End Sub
 
Dank je wel edmoor en Warme bakkertje, dit is precies wat ik bedoelde.
 
Terug
Bovenaan Onderaan