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

Zoeken in Excel met VBA

Status
Niet open voor verdere reacties.

vincent2

Gebruiker
Lid geworden
23 dec 2005
Berichten
27
Goedenavond,

Heb de volgende code waarmee ik in een apart tabblad de resultaten kan tonen van een zoekopdracht in een ander tabblad.

Code:
Sub Opzoeken()
Dim Woord As String
Dim DataBlad As Worksheet, WerkBlad As Worksheet
Dim Rng As Range
Dim MaxRij As Long, Rij As Long, StartRij As Long, WerkRij As Integer
Dim Flag As Boolean

Flag = True
Set DataBlad = Sheets("Artikelen")
Set WerkBlad = Sheets("Zoeken")

ActiveSheet.Unprotect ("***")
WerkBlad.Range("A5:C2000").ClearContents
WerkRij = 5

Woord = Trim(WerkBlad.Range("C2").Value)
MaxRij = DataBlad.Range("C2000").End(xlUp).Row + 3

If Woord <> "" Then

StartRij = 3
Do While Flag = True
Set Rng = DataBlad.Range("A" & StartRij & ":C" & MaxRij).Find(what:=Woord, LookIn:=xlValues, lookat:=xlPart)
If Rng Is Nothing Then
Flag = False
Else
Rij = Rng.Row
WerkBlad.Range("A" & WerkRij & ":B" & WerkRij).Value = DataBlad.Range("A" & Rij & ":B" & Rij).Value
WerkBlad.Range("C" & WerkRij).Value = DataBlad.Range("C" & Rij).Value
WerkRij = WerkRij + 1
StartRij = Rij + 1
End If
Loop

End If

ActiveSheet.Protect ("***")

Set DataBlad = Nothing
Set WerkBlad = Nothing

End Sub

Dit werkt perfect. Nu gebruik ik dezelfde code om op een getal te zoeken, dit werkt ook prima. Nu zou ik graag willen dat niet alleen de resultaten van dat ene getal getoond worden, maar ook alle getallen daarboven.

Als ik nu zoek op '3' vind ik alle regels waar een '3' in voorkomt, maar ik zou graag willen dat alle rijen worden gevonden waarin het getal >=3 is.

Het gaat om:
Code:
Set Rng = DataBlad.Range("A" & StartRij & ":C" & MaxRij).Find(what:=Woord, LookIn:=xlValues, lookat:=xlPart)

Dit werkt niet:
Code:
Set Rng = DataBlad.Range("A" & StartRij & ":C" & MaxRij).Find(what:>=Woord, LookIn:=xlValues, lookat:=xlPart)

Wie kan me hiermee helpen? Ik heb geen kennis van VBA en bovenstaand script op internet gevonden en aangepast aan mijn situatie.

Alvast bedankt!

Vincent
 
In zo een geval kun je vaak beter een filter opzetten en het filter instellen op >2. Vervolgens alles copiëren wat nog zichtbaar is. Of handmatig door de resultaten lopen. Find heeft standaard geen ondersteuning voor deze zaken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan