Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zahl aus einem String erkennen (Ein-Zweistellige)

Zahl aus einem String erkennen (Ein-Zweistellige)
02.10.2018 09:23:06
Fabio
Hallo Zusammen,
ich möchte eine Zahl, mit dem Inhalt zwei verschiedener Spalten vergleichen. In Spalte A stehen lauter Werte mit Text und in Spalte B auch. Hier ein Beispiel:
Wert nach dem gesucht werden soll "5".
Spalte A Spalte B
5 Materialkosten 51 Zusatzkosten
8 Fertigungskosten 66 Produktionskosten
Der Aufbau ist immer gleich, links in der Zelle steht eine Zahl und rechts davon ein Text.
Wenn der Wert links ist soll die Variable "links"(boolean") gleich "true" werden. Wenn der Wert rechts dann soll Variable "rechts"(boolean) true werden.
Problem ist jetzt, dass mein Code die 5 auf beiden Seiten findet da die Zahl "51" auch eine "5" beinhaltet.
Wie schaffe ich es dass er wirklich nur den Wert "5" berücksichtigt und nicht auch eine "5" in einer Zahl wie "51".
Hier mein Code:
Value = 5 as Integer
Do Until Sheets("Sheet1").Range("A" & counter) = "" And Sheets("Sheet1").Range("B" & counter) = ""
If InStr(Sheets("Sheet1").Range("B" & counter), CStr(value)) Then
links= True
End If
If InStr(Sheets("Sheet1").Range("C" & counter), CStr(value)) Then
rechts= True
End If
counter = counter + 1
Loop

Danke für eure Hilfe.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Daten ungesund
02.10.2018 09:34:12
lupo1
Die Zahl gehört nicht mit dem Text zusammen.
Trotzdem geht es mit =1*GLÄTTEN(LINKS(DeinInhalt;2)), auf VBA mit Trim und Left übertragen.
AW: Zahl aus einem String erkennen (Ein-Zweistellige)
02.10.2018 09:38:50
daniel
Hi
1. Verwende VBA-Schlüsselwörter nicht als Variablenname (value).
das kann funktionieren, muss aber nicht. außerdem ist es verwirrend für jemanden der den Code liest.
2. nimm als Wert für die Prüfung die Zahl und das nachfolgende Leerzeichen. Denn "5 " wird bei "51" keinen Treffer erzeugen
Dim Wert as String
Wert = "5 "
Do Until Sheets("Sheet1").Range("A" & counter) = "" And Sheets("Sheet1").Range("B" & counter) =  _
If InStr(Sheets("Sheet1").Range("B" & counter), Wert) Then
links= True
End If
If InStr(Sheets("Sheet1").Range("C" & counter), Wert) Then
rechts= True
End If
counter = counter + 1
Loop
Gruß Daniel
Anzeige
AW: Zahl aus einem String erkennen (Ein-Zweistellige)
02.10.2018 10:11:39
Fabio
Danke Lupo1 und Daniel, ich bin jetzt einfach den Weg gegangen nicht mehr einen Integer sondern nach einem String suchen zu lassen. Bis jetzt geht es damit, hoffe, dass diese Lösung auch nachhaltig ist.
AW: Zahl aus einem String erkennen (Ein-Zweistellige)
02.10.2018 10:18:25
daniel
Hi
das wird nicht viel helfen, da du schon immer nach einem String gesucht hast, weil du für die Suche deine Zahl mit CStr in einen Text gewandelt hast.
der Wert nach dem du suchst, entsprich ja einem Wort (auch wenn dieses Wort nur aus Ziffern besteht)
Wenn man in Texten nach einem ganzen Wort sucht, sollte man immer die Leerzeichen am anfang und Ende des Wortes mit dazu nehmen. Damit verhindert man, dass man einen Treffer bekommt, wenn das gesuchte Wort zufälligerweise Teil eines im Text vorkommenden längeren Wortes ist (so wie bei dir die 5 in 51)
Gruß Daniel
Anzeige
Ohne Hinweis auf "Crossposting" wird Fabio
04.10.2018 10:26:33
lupo1
das immer wieder machen, da er denkt, onur wäre ein vereinzelter Grantler, der sich aufregt.
Ist der aber nicht. :-)

320 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige