Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zahlen finden
#1
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.
Antworten Top
#2
Hallo,

wenn die Daten durch Kommata getrennt sind, suche einfach nach "12," bzw. mit Leerzeichen nach "12 "
Gruß Jonas
Antworten Top
#3
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
Früher dachte ich etwas über Office zu wissen, bis ich in diesem Forum ankam. Es gibt noch viel zu lernen.
Reaktionen auf angebotene Lösungen wären sehr nett.
Antworten Top
#4
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
Gruß Atilla
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste