Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

String in Zeichenkette suchen

Betrifft: String in Zeichenkette suchen von: Edgar Höcker
Geschrieben am: 04.10.2020 16:24:50

Hallo,
ich habe ein VBA Programm, welches aus Input Daten eine Artikelbeschreibung liest. Dann habe ich eine Zuordnung von Begriffe zu Artikelgruppen stehen.
Jetzt suche ich im Input nach dem ersten Begriff (über Schleife bis Artikelzuordnung gemacht wurde oder keine Begriffe mehr zur Verfügung stehen). Das funktioniert auch gut.
Ein Problem habe ich:
Begriff - Zuordnung
schuh - Schuhe
schuhe - Handschuhe
Input ist Handschuhe und es werden zwei Zuordnungen gemacht, weil schuh ja auch in Handschuhe vorkommt.
Nun meine Frage: ich nutze INSTR. Kann man da auch genau auf schug oder genau auf schuhe abfragen oder gibt es eine andre Möflichkeit?
Danke schon einmal für die Hilfe!

Betrifft: AW: String in Zeichenkette suchen
von: Hajo_Zi
Geschrieben am: 04.10.2020 16:31:36

If instr(Variable, "Schuh ")>1 or instr( Variable, " Schuh ")>1 Then
GrußformelHomepage

Betrifft: es ist nich mein Tag Falsch oT
von: Hajo_Zi
Geschrieben am: 04.10.2020 16:32:25



Betrifft: Dieser Satz kommt als Bild anne Wand :-)
von: lupo1
Geschrieben am: 04.10.2020 17:19:31

Jeder darf mal danebenliegen.

Betrifft: jetzt gestest
von: Hajo_Zi
Geschrieben am: 04.10.2020 17:27:41

Sub Suchen()
    Dim Variable As String
    Variable = "Handschuhe"
    If InStr(1, Variable, " Schuhe", 0) > 0 Or InStr(1, Variable, "Schuhe ", 0) > 0 Then
        MsgBox 1
    End If
    Variable = "Handschuhe Schuhe"
    If InStr(1, Variable, " Schuhe", 0) > 0 Or InStr(1, Variable, "Schuhe ", 0) > 0 Then
        MsgBox 2
    End If
End Sub
Gruß Hajo

Betrifft: AW: String in Zeichenkette suchen
von: ralf_b
Geschrieben am: 04.10.2020 16:33:05

vielleicht mit "="

wie stehen die zu vergleichenden Daten zur Verfügung?

Betrifft: AW: String in Zeichenkette suchen
von: Edgar Höcker
Geschrieben am: 04.10.2020 16:40:17

Alle in einem Workbook. Input auf einem Arbeitsblatt, begriffe und Zuordnung auf einem zweiten Arbeitsblatt und das Ergebniss auf einem dritten Arbeitsblatt.
Vielleicht etwas genauer. Ich habe folgende Begriffe "schuhe" orne ich "Handschuhen" zu und "schuh" "Schuhen".
Da ber "schuh" auch in "schuhen" vorkommt erfolgt eine Doppelzuordnung.
Ich möchte in den Begriffen jetzt unterscheiden "ha*schuh" für Handschuhe und "schuhe" für Schuhe. Oder so ähnlich. Wenn es eine einfachere Möglichkeit gibt nehme ich die gerne.

Betrifft: AW: String in Zeichenkette suchen
von: ralf_b
Geschrieben am: 04.10.2020 16:50:24

bei instr kann man die stelle bzw die Buchstabenposition ab der die suche beginnt festlegen.

oder mit like und entsprechenden "*" oder "?" als Paltzhalter. wort like "Schuhe" oder like "*schuhe"

es gitb auch die Möglichkeit die Groß/kleinschreibung mit einzubeziehen. Wortanfang ist doch immer Groß.


Betrifft: AW: String in Zeichenkette suchen
von: Edgar Höcker
Geschrieben am: 04.10.2020 17:02:50

Das funktioniert leider nicht:
Input ist "Handschuhe".
Zuordnung ist "hand" auf Handschuhe und "schuhe" auf Schuhe.
Im Ergebniss finde ich dann Handschuhe = Handschuhe und Handschuhe = Schuhe
Input könnte ja auch sein "Herrenschuhe".
Selbst wenn ich als Suchbegriff "Handschuhe" auf Handschuhe eintrag wird in dem String "schuhe gefunden und zusätzlich "Handschuhe" auf Schuhe zugeordnet

Betrifft: AW: String in Zeichenkette suchen
von: Beverly
Geschrieben am: 04.10.2020 16:34:33

Hi Edgar,

hilft dir dies https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/instr-function vielleicht weiter?


GrußformelBeverly's Excel - Inn

Betrifft: AW: String in Zeichenkette suchen
von: Edgar Höcker
Geschrieben am: 04.10.2020 16:54:47

Hatte ich auch schon. Hilft aber nicht weiter. Trotzdem danke!

Betrifft: AW: String in Zeichenkette suchen
von: Beverly
Geschrieben am: 04.10.2020 17:23:48

Dann laufe in einer Schleife über alle Zeichen des Begriffs und prüfe ob dein Suchbegriff enthalten ist.


GrußformelBeverly's Excel - Inn

Betrifft: AW: String in Zeichenkette suchen
von: Daniel
Geschrieben am: 05.10.2020 02:32:33

Hi

Prüfe in der Reihenfolge der Textlängen, dh zuerst nach dem kürzeren und dann nach dem längeren.
Verwendet immer den letzten Treffer.

Gruß Daniel

Betrifft: Immer, wenn es um...
von: Case
Geschrieben am: 05.10.2020 07:31:23

Hallo, :-)

... die Manipulation von Strings geht (Prüfen, Auslesen, Ändern) bietet sich RegEx an. ;-)

Etwas Einarbeitungszeit, dann aber sehr mächtig.

Servus
Case