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

VBA - Suche egal ob case-sensitive...

Forumthread: VBA - Suche egal ob case-sensitive...

VBA - Suche egal ob case-sensitive...
06.06.2017 23:06:29
Darren
Hi,
wie müssen die Daten bzw die Suche "Funktion" in VBA aufgebaut sein damit ich nach einem Wort suchen kann, der egal wo und wie er ist i einem Satz gefunden wird:
- das Wort kann am Anfang, in der Mitte oder am Ende sein
- Leerzeichen drumherum -mal mehr oder weniger
- in kleinen oder großen Buchstaben (Umsatz, UMSATZ).
Mit
If Suchevariable Like "*" & Gefundenvariable & "*" Then
hat es nicht funktioniert. Begriffe mit Case-sensitive wurden nicht gefunden.
Grüße
Darren
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Suche egal ob case-sensitive...
06.06.2017 23:13:03
MatthiasG
Hallo Darren,
in das Modul, wo der Code steht, gehört ganz oben, außerhalb der Prozeduren, ein
Option Compare Text

hin.
Gruß Matthias
AW: VBA - Suche egal ob case-sensitive...
06.06.2017 23:15:10
Darren
Genial und einfach - muss man nur wissen! Danke Matthias!
AW: VBA - Suche egal ob case-sensitive...
06.06.2017 23:22:51
Daniel
Hi
"Like" ist Case-Sensitiv.
du kannst aber mit LCase bzw UCase einen Text in Klein- oder Großbuchstaben wandeln und damit den Vergleich durchführen:
IF LCase(SucheVariable) Like "*" & LCase(GefundenVariable) & "*" Then
wobei SucheVariable der lange Text und GefundenVariable der kurze Text sein muss.
alternativ geht auch
If Instr(1, SucheVariable, GefundenVariable, vbTextCompare) > 0 Then
Gruß Daniel
Anzeige
AW: VBA - Suche egal ob case-sensitive...
12.06.2017 20:23:24
Darren
Danke sehr!
Darren
;
Anzeige

Infobox / Tutorial

Suche in VBA - Case-Sensitivity verstehen und umgehen


Schritt-für-Schritt-Anleitung

Um in Excel VBA eine Suche durchzuführen, die nicht case-sensitive ist, kannst Du folgende Schritte befolgen:

  1. Öffne das VBA-Editor-Fenster:

    • Gehe in Excel auf Entwicklertools und klicke auf Visual Basic.
  2. Füge den folgenden Code in ein Modul ein:

    Option Compare Text
    
    Sub SucheNachWort()
       Dim SucheVariable As String
       Dim GefundenVariable As String
    
       SucheVariable = "Hier steht dein langer Text"
       GefundenVariable = "umsatz" ' Das Wort, nach dem gesucht wird
    
       If SucheVariable Like "*" & GefundenVariable & "*" Then
           MsgBox "Wort gefunden"
       Else
           MsgBox "Wort nicht gefunden"
       End If
    End Sub

    Mit Option Compare Text wird die Suche in VBA nicht case-sensitive, wodurch sowohl "Umsatz" als auch "umsatz" gefunden werden.

  3. Führe das Makro aus:

    • Klicke im VBA-Editor auf Run oder drücke F5, um das Makro auszuführen.

Häufige Fehler und Lösungen

  • Problem: Das Wort wird nicht gefunden, obwohl es vorhanden ist.

    • Lösung: Stelle sicher, dass Option Compare Text am Anfang des Moduls definiert ist. Dies sorgt dafür, dass die Suche nicht case-sensitive ist.
  • Problem: Der Like Operator funktioniert nicht wie gewünscht.

    • Lösung: Verwende den Instr-Befehl:
      If InStr(1, SucheVariable, GefundenVariable, vbTextCompare) > 0 Then

      Damit wird die Suche ebenfalls nicht case-sensitive.


Alternative Methoden

Wenn Du eine alternative Methode zur Suche in VBA verwenden möchtest, kannst Du die Funktionen LCase oder UCase nutzen, um die Texte in Klein- oder Großbuchstaben zu konvertieren:

If LCase(SucheVariable) Like "*" & LCase(GefundenVariable) & "*" Then

Diese Methode stellt sicher, dass der Vergleich unabhängig von der Groß- und Kleinschreibung durchgeführt wird.


Praktische Beispiele

Hier sind einige praktische Anwendungsbeispiele für eine case-insensitive Suche in VBA:

  1. Ein einfaches Suchbeispiel:

    Sub Beispiel1()
       Dim Text As String
       Dim Suchwort As String
    
       Text = "Das ist ein Beispieltext für Umsatz."
       Suchwort = "UMSATZ"
    
       If InStr(1, Text, Suchwort, vbTextCompare) > 0 Then
           MsgBox "Suchwort gefunden!"
       End If
    End Sub
  2. Verwendung von Like mit Wildcards:

    Sub Beispiel2()
       Dim Text As String
       Dim Suchwort As String
    
       Text = "Umsatzbericht"
       Suchwort = "umsatz"
    
       If Text Like "*" & Suchwort & "*" Then
           MsgBox "Suchwort im Text enthalten!"
       End If
    End Sub

Tipps für Profis

  • Nutze Option Compare Binary, wenn Du eine case-sensitive Suche durchführen möchtest. Dies ist nützlich, wenn Du zwischen "Umsatz" und "umsatz" unterscheiden möchtest.

  • Bei der Verwendung von SVERWEIS in Excel ist es wichtig zu wissen, dass dieser standardmäßig nicht case-sensitive ist. Um dies zu umgehen, kannst Du eine Hilfsspalte erstellen, die die Werte in eine einheitliche Groß- oder Kleinschreibung konvertiert.


FAQ: Häufige Fragen

1. Ist VBA case-sensitive? VBA ist standardmäßig nicht case-sensitive, es sei denn, Du verwendest Option Compare Binary.

2. Wie kann ich sicherstellen, dass meine Suche case-insensitive ist? Füge Option Compare Text am Anfang Deines Moduls hinzu oder verwende die Instr-Funktion mit vbTextCompare.

3. Kann ich mit Like auch Wildcards verwenden? Ja, der Like Operator erlaubt die Verwendung von Wildcards wie * und ?, um flexibel nach Textmustern zu suchen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige