Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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.
Anzeige

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. :-)
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige