Clever-Excel-Forum

Normale Version: Zahlen finden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi Experten,

habe ein typisches Anfängerproblem. Ich möchte herausfinden, ob eine Zahl in einer Zeichenkette vorhanden ist.

Das kann ich wunderschön mit der InStr - Funktion erledigen. So weit so gut. Jetzt mein Problem.

Wenn ich z.B. die Zahl 12 suche und in der Zeichenkette stehen Werte wie 120, 121 usw. wird

ebenfalls etwas gefunden, obwohl die Zahl 12  überhaupt nicht in der Zeichenkette vorhanden ist.

Wie löse ich das Problem?

Schon mal im voraus  ein herzliches Dankeschön für eure Hilfe.
Hallo,

wenn die Daten durch Kommata getrennt sind, suche einfach nach "12," bzw. mit Leerzeichen nach "12 "
Hi ich bin jetzt nicht der VBA Programmierer aber rein von der Logik solltest du prüfen ob nach dem Treffer+1 (oder 2) eine Zahl folgt.
Das Ergebnis von InStr kannst du doch in einer Variablen zwischenspeichern und damit bei der nächsten Prüfung +1 oder 2 angeben.
Ist das so (Zahl folgt), dann setzt du die Variable zurück oder erhöhst sie und lässt ab da weitersuchen. Ist es nicht so gibst du die Variable aus.

Mal einfach so in den Raum geworfen.
LG
Hallo,

eine mögliche Lösung:

Code:
Sub test()
Dim i As Long, x As Long
For i = 1 To 10
  x = InStr(1, Cells(i, 1), 12)
  If x > 0 Then
    x = IIf(x = 1, 4, x)
    If Not Mid(Cells(i, 1), x + 2, 1) Like "[0-9]" And Not Mid(Cells(i, 1), x - 1, 1) Like "[0-9]" Then MsgBox "12 in Zelle " & Cells(i, 1).Address(0, 0) & " gefunden"
  End If
Next i
End Sub



getestet mit folgenden Daten:

Arbeitsblatt mit dem Namen 'Tabelle1'
 AB
1a120 
2a1222a 
3a12d2agefunden
4aa212a 
512agefunden
6a12gefunden
7aaa12gefunden
8  
9  
10  
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg