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

Bei Suche Groß/Kleinschreibung egal

Forumthread: Bei Suche Groß/Kleinschreibung egal

Bei Suche Groß/Kleinschreibung egal
Wolfgang
Hallo,
den nachfolgenden Code erhielt ich hier aus dem Forum. Er läuft auch soweit sehr gut. Der Querverweis auf Schaltfläche 1 bewirkt dabei lediglich einen Refresh und ist, so glaube ich, für meine Frage nicht erheblich. Ich würde nämlich gerne erreichen, dass die Schreibweise des Suchbegriffs in Groß oder Kleinschreibung nicht erheblich ist. Wie kann ich den folgenden Code entsprechend anpassen? Danke schon jetzt für die Rückmeldungen.
Gruß - Wolfgang

Option Explicit
Sub SuchenKopieren()
Static Suchbegriff As String
Dim Zelle As Variant, ErsteAdresse As String
Dim letzteZeile As Integer
Dim wksQuelle As Worksheet
Dim wksZiel As Worksheet
Dim rng As Range
Set wksQuelle = Worksheets("Maßnahmen")
Set wksZiel = Worksheets("Einstellungen")
Application.ScreenUpdating = False
'bewirkt Refresh
Sheets("Einstellungen").CommandButton1 = True
'Suche beginnen
Suchbegriff = InputBox(Prompt:="Bitte Suchbegriff eingeben." & vbLf & _
"Bitte Groß und Kleinschreibung beachten!", Default:=Suchbegriff)
If Suchbegriff = "" Then
MsgBox "Es wurde kein Suchbegriff eingegeben.", vbCritical
Exit Sub
End If
With wksQuelle
'Überschriftenzeile kopieren ...
.Range("A1:K1").Copy Destination:=wksZiel.Range("A14")
'Suche in Spalte F
Set Zelle = .Columns(6).Find(What:="*" & Suchbegriff & "*", After:=.Range("F1"), _
LookIn:=xlValues, lookat:=xlWhole, _
SearchOrder:=xlNext, MatchCase:=True)
If Not Zelle Is Nothing Then
ErsteAdresse = Zelle.Address
letzteZeile = 15
Do
'gefundenen Zeile Spalten A bis K kopieren in nächste Zeile im Zielblatt
.Range(.Cells(Zelle.Row, 1), .Cells(Zelle.Row, 11)).Copy _
Destination:=wksZiel.Cells(letzteZeile, 1)
'Suche wiederholen
Set Zelle = .Columns(6).FindNext(Zelle)
letzteZeile = letzteZeile + 1
Loop While Not Zelle Is Nothing And Zelle.Address  ErsteAdresse
End If
End With
For Each rng In Range("A14").CurrentRegion.Rows
If rng.Row Mod 2 = 0 Then rng.Interior.ColorIndex = 15
Next
wksZiel.Select
Range("G4").Select
Application.ScreenUpdating = True
End Sub

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
MatchCase:=False o.T.
10.10.2011 20:37:42
Josef
« Gruß Sepp »

Danke Josef!!
10.10.2011 20:54:41
Wolfgang
Hallo Josef,
Danke für die Meldung und den Hinweis. Habe den Code angepasst und es klappt super!
Gruß - Wolfgang
Anzeige
Eine Frage noch - Begriff nicht gefunden
10.10.2011 21:13:28
Wolfgang
Hallo Josef,
ich habe noch weiter probiert und getestet. Das mit der Groß/Kleinschreibung klappt super. Mir fiel beim probieren nur ein, ob es denkbar sein könnte, dass wenn der Suchbegriff nicht gefunden wird, eine MsgBox erscheint und die Überschrift, die ja schon vorher in A14 hineinkopiert wird, wieder gelöscht wird. Wenn Du mir da noch einen Hinweis geben könntest, an welcher Stelle ich da den Code anpassen kann? - Danke schon jetzt für Deine Rückmeldung.
Gruß - Wolfgang
Anzeige
AW: Eine Frage noch - Begriff nicht gefunden
10.10.2011 21:31:03
Josef

Hallo Wolfgang,

Sub SuchenKopieren()
  Static Suchbegriff As String
  Dim Zelle As Variant, ErsteAdresse As String
  Dim letzteZeile As Integer
  Dim wksQuelle As Worksheet
  Dim wksZiel As Worksheet
  Dim rng As Range
  Set wksQuelle = Worksheets("Maßnahmen")
  Set wksZiel = Worksheets("Einstellungen")
  Application.ScreenUpdating = False
  'bewirkt Refresh
  Sheets("Einstellungen").CommandButton1 = True
  'Suche beginnen
  Suchbegriff = InputBox(Prompt:="Bitte Suchbegriff eingeben." & vbLf & _
    "Bitte Groß und Kleinschreibung beachten!", Default:=Suchbegriff)
  If Suchbegriff = "" Then
    MsgBox "Es wurde kein Suchbegriff eingegeben.", vbCritical
    Exit Sub
  End If
  
  With wksQuelle
    'Suche in Spalte F
    Set Zelle = .Columns(6).Find(What:="*" & Suchbegriff & "*", After:=.Range("F1"), _
      LookIn:=xlValues, lookat:=xlWhole, _
      SearchOrder:=xlNext, MatchCase:=True)
    If Not Zelle Is Nothing Then
      'Überschriftenzeile kopieren ...
      .Range("A1:K1").Copy Destination:=wksZiel.Range("A14")
      ErsteAdresse = Zelle.Address
      letzteZeile = 15
      Do
        'gefundenen Zeile Spalten A bis K kopieren in nächste Zeile im Zielblatt
        .Range(.Cells(Zelle.Row, 1), .Cells(Zelle.Row, 11)).Copy _
          Destination:=wksZiel.Cells(letzteZeile, 1)
        
        'Suche wiederholen
        Set Zelle = .Columns(6).FindNext(Zelle)
        letzteZeile = letzteZeile + 1
      Loop While Not Zelle Is Nothing And Zelle.Address <> ErsteAdresse
    Else
      MsgBox "Nada!"
    End If
  End With
  For Each rng In Range("A14").CurrentRegion.Rows
    If rng.Row Mod 2 = 0 Then rng.Interior.ColorIndex = 15
  Next
  wksZiel.Select
  Range("G4").Select
  Application.ScreenUpdating = True
End Sub




« Gruß Sepp »

Anzeige
erneut herzlichen Dank!!
10.10.2011 21:57:44
Wolfgang
Hallo Josef,
erneut herzlichen Dank für Deine Rückmeldung und Ergänzung im Code. Hat mir sehr weitergeholfen!!
Gruß - Wolfgang
AW: Bei Suche Groß/Kleinschreibung egal
10.10.2011 20:41:18
Hajo_Zi
Hallo Wolgang,
unter Option Explicit
Option compare Text

Anzeige
Danke HaJo
10.10.2011 20:58:22
Wolfgang
Hallo Hajo,
herzlichen Dank auch Dir für die schnelle Rückmeldung. Ich habe den Hinweis von Josef aufgegriffen, da sich dieser Passus bereits im Code befand, konnte ihn dabei allerdings nicht deuten. Nun habe ich auch da wieder hinzugelernt. In dem Sinne nochmals tausend Dank!
Gruß - Wolfgang
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Groß- und Kleinschreibung in Excel ignorieren


Schritt-für-Schritt-Anleitung

Um in Excel die Groß- und Kleinschreibung bei der Suche zu ignorieren, kannst du eine kleine Anpassung im VBA-Code vornehmen. Hier ist der angepasste Code:

Option Explicit
Sub SuchenKopieren()
    Static Suchbegriff As String
    Dim Zelle As Variant, ErsteAdresse As String
    Dim letzteZeile As Integer
    Dim wksQuelle As Worksheet
    Dim wksZiel As Worksheet
    Dim rng As Range
    Set wksQuelle = Worksheets("Maßnahmen")
    Set wksZiel = Worksheets("Einstellungen")
    Application.ScreenUpdating = False

    'Suche beginnen
    Suchbegriff = InputBox(Prompt:="Bitte Suchbegriff eingeben." & vbLf & _
    "Groß und Kleinschreibung wird ignoriert!", Default:=Suchbegriff)

    If Suchbegriff = "" Then
        MsgBox "Es wurde kein Suchbegriff eingegeben.", vbCritical
        Exit Sub
    End If

    With wksQuelle
        'Überschriftenzeile kopieren
        .Range("A1:K1").Copy Destination:=wksZiel.Range("A14")
        'Suche in Spalte F
        Set Zelle = .Columns(6).Find(What:="*" & Suchbegriff & "*", After:=.Range("F1"), _
                                      LookIn:=xlValues, lookat:=xlWhole, _
                                      SearchOrder:=xlNext, MatchCase:=False) ' MatchCase auf False setzen

        If Not Zelle Is Nothing Then
            ErsteAdresse = Zelle.Address
            letzteZeile = 15
            Do
                'Gefundenen Zeile Spalten A bis K kopieren in nächste Zeile im Zielblatt
                .Range(.Cells(Zelle.Row, 1), .Cells(Zelle.Row, 11)).Copy _
                Destination:=wksZiel.Cells(letzteZeile, 1)
                'Suche wiederholen
                Set Zelle = .Columns(6).FindNext(Zelle)
                letzteZeile = letzteZeile + 1
            Loop While Not Zelle Is Nothing And Zelle.Address <> ErsteAdresse
        End If
    End With

    For Each rng In Range("A14").CurrentRegion.Rows
        If rng.Row Mod 2 = 0 Then rng.Interior.ColorIndex = 15
    Next
    wksZiel.Select
    Range("G4").Select
    Application.ScreenUpdating = True
End Sub

Häufige Fehler und Lösungen

  • Fehler: Suchbegriff nicht gefunden.

    • Lösung: Stelle sicher, dass MatchCase auf False gesetzt ist. So wird die Groß- und Kleinschreibung ignoriert.
  • Fehler: Keine Ergebnisse werden angezeigt.

    • Lösung: Überprüfe, ob der eingegebene Suchbegriff korrekt ist und in der entsprechenden Spalte vorhanden ist.

Alternative Methoden

Falls du keine VBA-Lösungen nutzen möchtest, kannst du in Excel auch die Funktion =SUCHEN() verwenden, die ebenfalls die Groß- und Kleinschreibung ignoriert:

=SUCHEN("Suchbegriff"; A1)

Wenn du eine E-Mail-Adresse analysierst, könnte die Groß- und Kleinschreibung bei E-Mail-Adressen egal sein. Hierbei gilt:

=VERGLEICH("email@example.com"; B1:B10; 0)

Praktische Beispiele

  1. VBA-Suche ohne Berücksichtigung der Schreibweise:

    • Verwende den oben genannten Code, um in der Spalte nach einem Suchbegriff zu suchen, ohne auf die Schreibweise achten zu müssen.
  2. E-Mail-Adressen in Excel:

    • Wenn du E-Mail-Adressen hast und sicherstellen möchtest, dass die Suche unabhängig von der Schreibweise erfolgt, kannst du einfach die SUCHEN()-Funktion verwenden.

Tipps für Profis

  • Nutze die Option Compare Text-Anweisung ganz oben in deinem VBA-Modul. So wird die gesamte Code-Ausführung in diesem Modul die Groß- und Kleinschreibung ignorieren.
  • Verwende vba instr, um die Position eines Suchbegriffs in einem String zu finden, ohne auf die Schreibweise zu achten:
If InStr(1, A1, Suchbegriff, vbTextCompare) > 0 Then
    'Code hier
End If

FAQ: Häufige Fragen

1. Ist die Groß- und Kleinschreibung bei E-Mail-Adressen egal? Ja, die Groß- und Kleinschreibung ist bei E-Mail-Adressen in der Regel egal.

2. Wie kann ich sicherstellen, dass meine VBA-Suchfunktion die Schreibweise ignoriert? Setze MatchCase in deiner Find-Funktion auf False, um die Groß- und Kleinschreibung zu ignorieren.

3. Welche Excel-Version benötige ich für den VBA-Code? Der bereitgestellte VBA-Code funktioniert in Excel-Versionen, die VBA unterstützen, einschließlich Excel 2010, 2013, 2016, 2019 und Microsoft 365.

4. Kann ich die Funktion auch ohne VBA nutzen? Ja, du kannst die Funktion =SUCHEN() oder =FINDEN() verwenden, um in Excel zu suchen, ohne auf die Groß- und Kleinschreibung zu achten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige