Live-Forum - Die aktuellen Beiträge
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
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