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

Gekozen tekst terugzoeken met VBA

Status
Niet open voor verdere reacties.

ErnstHugo

Nieuwe gebruiker
Lid geworden
23 apr 2016
Berichten
4
Ik ben al een tijdje op zoek naar een manier om met VBA uit een lijst met klantnamen, inclusief spaties, een gekozen klantnaam weer terug vinden in de originele lijst.

Een eenvoudig statement waarvan ik dacht dat dit wel zou gaan:

If ActiveSheet.Range("K" & i) = gekozenklant Then ...

geeft een Fout 13 : Typen komen niet elkaar overeen

In de lokale variabelen komt "gekozenklant" als Variant/String naar voren terwijl Range("K"&i) als string wordt aangegeven.

gebruik van Dim gekozenklant As String heeft geen zin.

Ook het gebruik van een extra variable die dan de waarde van de Range("K" & i) kort voor het If statement heeft gekregen heeft geen zin

Wie heeft er een idee?
Zijn het de spaties die roet in het eten gooien?


grt
 
Code:
Sub vinden()
Dim dataRange As Range, strfound As Range
Dim x As String
Set dataRange = ActiveSheet.Range("A1:A10000")
x = InputBox("Kies een zoekwaarde", "Zoeken")

With dataRange
Set strfound = .Find(What:=x, LookIn:=xlFormulas, LookAt:=xlWhole, _
SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
    If Not strfound Is Nothing Then
        MsgBox (x & " gevonden in cel " & strfound.Address)
    Else
        MsgBox (x & " niet gevonden")
    End If
End With
End Sub
 
dank beiden voor de antwoorden.
Ik zal ze nog verder bekijken maar via een oplossing van het vervangen van spaties door een "." werkte het nu naar mijn behoeven. Misschien een beetje te veel knutsel werk maar goed.
Eerst de gekozenklant omvormen met de Substitute functie en dan

If WorksheetFunction.Substitute(ActiveSheet.Range("C" & i), " ", ".") = gekozenklant

Werkt goed voor mijn dingetje
 
Code:
If ActiveSheet.Range("K" & i)[COLOR="#FF0000"].value[/COLOR] = gekozenklant Then ...
Je moet kijken naar de inhoud, niet naar het bereik !
soms is dat zaakje ook hoofdlettergevoelig, afhankelijk van je instellingen
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan