im VBA würde ich gerne automatisieren, ob eine Zelle des einen worksheet einen String aus einem anderen worksheet enthält. Soweit klappt auch alles, leider gibt er mir zu viel aus. BSP.: zu durchsuchender String = „A15“
durchsuchter String = „A152“
Wert ist somit True… aber ich möchte dass er dann wirklich nur „A15“ = True
Ich würde ja eine If x = y abfrage machen, jedoch enthält der durchsuchte String mehr als nur wie in meinem Beispiel „A152“…
Kann mir bitte jemand weiter helfen???
wenn du a=b vergleichen willst, tu es!
Wenn du in die Dokumentation reinschauen würdest, könntest du lesen:
Returns a Variant (Long) specifying the position of the first occurrence of one string within another.
**Remarks**
The InStrB function is used with byte data contained in a string. Instead of returning the character position of the first occurrence of one string within another, InStrB returns the byte position.
ich sollte meine letzte Nachricht korrigieren. Der Tip von Ihnen war Zielführend. Nun funktioniert es! Ich musste lediglich die Durchsuchte Zelle optimieren ( hinter den „Suchstring“ ein Leerzeichen setzen!
für so einer Suche solltest du eine benutzerdefinierte Funktion erstellen, an die du die Paramter für die Suche übergibst.
Für die Suche selbst verwende die Suchfunktion von Excel. Erst bei komplizierten Suchmustern muss man auf andere Funktionen zurückgreifen.
Gruß
Franz
Code-Beispiel
Sub Test1()
Dim bolVorhanden As Boolean
bolVorhanden = fncFindContent(varWhat:="A15", \_
rngBereich:=Worksheets("Tabelle2").UsedRange, \_
bolMatchCase:=True)
If bolVorhanden = True Then
MsgBox """A15"" gefunden!"
Else
MsgBox """A15"" nicht gefunden!"
End If
End Sub
Public Function fncFindContent(varWhat As Variant, rngBereich As Range, \_
Optional bolMatchCase As Boolean = False, \_
Optional lngLookat As Long = xlWhole, \_
Optional lngLookin As Long = xlValues) As Boolean
Dim rngZelle As Range
On Error GoTo Fehler
Set rngZelle = rngBereich.Find(What:=varWhat, LookIn:=lngLookin, \_
Lookat:=lngLookat, MatchCase:=bolMatchCase)
If rngZelle Is Nothing Then
fncFindContent = False
Else
fncFindContent = True
End If
Exit Function
Fehler:
fncFindContent = False
MsgBox "Fehler-Br.: " & Err.Number & vbLf & Err.Description
End Function