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

Forumthread: In Excel Sheet nach String suchen

In Excel Sheet nach String suchen
17.03.2008 10:18:30
Sebastian
Hallo,
ich habe ein Problem
ich habe einen String in einer Variable
Jetzt habe ich in einer Excel Tabelle eine Liste mit Werten wo dieser Wert vorkommt. Jetzt möchte ich die Zeile ermitteln in der dieser Wert steht? Wie geht das?
Jetzt gibt es dazu noch ein Problem. In der Excel Tabelle kann vor oder hinter diesem Wert noch was stehen. Also in der Variable steht abc. Aber in der Excel Tabelle kann 01abc oder abc01 z.B. stehen oder auch 01abc01. Kann man so ne ar Platzhalter davor und dahinter setzen oder wie macht man das?

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Excel Sheet nach String suchen
17.03.2008 10:51:00
Heiko
Hallo Sebastian,
z.B. so:

Sub SuchenVBA()
Dim rngWo As Range
Dim strWasSuchen As String
strWasSuchen = "abc"
Set rngWo = ActiveWorkbook.ActiveSheet.UsedRange.Find(strWasSuchen, LookIn:=xlValues, Lookat:= _
xlPart)
If Not rngWo Is Nothing Then
MsgBox rngWo.Address
MsgBox rngWo.Row
End If
End Sub


Gruß Heiko
PS: Rückmeldung wäre nett !

Anzeige
AW: In Excel Sheet nach String suchen
17.03.2008 11:00:13
Tino
Hallo,
hier eine version die alle sucht.

Sub test()
Dim Anz As Long, a As Long, SuchIN As Range
Dim MeinTXT As String, Zelle As Range
MeinTXT = "Tin" 'Mein Suchtext
Set SuchIN = Sheets("Tabelle1").Cells 'Wo soll gesucht werden
'Zähle Zellen mit diesen Textinhalt
Anz = Application.WorksheetFunction. _
CountIf(SuchIN, "*" & MeinTXT & "*")
With SuchIN
For a = 1 To Anz
If a = 1 Then
'Suche erste
Set Zelle = .Find(what:="*" & MeinTXT & "*", _
After:=.SpecialCells(xlCellTypeLastCell), LookIn:=xlValues)
MeinTXT = Zelle.Address & Chr(13)
Else
'Suche nächste
Set Zelle = .FindNext(After:=Zelle)
MeinTXT = MeinTXT & Zelle.Address & Chr(13)
End If
Next a
End With
Set Zelle = Nothing
Set SuchIN = Nothing
MsgBox MeinTXT 'Ausgabe der Info
End Sub


Gruß
Tino

Anzeige
AW: In Excel Sheet nach String suchen
17.03.2008 11:33:50
Sebastian
Hallo,
hab mal das Beispiel von Tino versucht.
Die anzahl der Zellen zu zählen wo der text drinnen steht geht.
Bekomme aber bei

Set rngwo = .Find(what:="*" & sstring & "*", After:=.SpecialCells(xlCellTypeLastCell), LookIn:=xlValues)


einen Fehler. Und zwar bei SpecialCells
Da bekomme ich die Meldung


Unzulääsiger oder nicht ausreichend definierter Verweis


Anzeige
AW: In Excel Sheet nach String suchen
17.03.2008 12:08:00
Tino
Hallo,
wird wohl nicht in Office 2000 unterstützt.
Versuche mal,
„MeineTabelle” noch den Richtigen Tabellennamen eintragen.
After:= sheets("MeineTabelle").Range("A65500")
Gruß
Tino

AW: In Excel Sheet nach String suchen
17.03.2008 12:13:27
Mag
Hi,

After:=Cells(.Row + .Rows.Count - 1, .Column + .Columns.Count - 1)


Gruss

Anzeige
AW: In Excel Sheet nach String suchen
17.03.2008 12:37:58
Sebastian
ok das geht
jetzt die gleiche Fehlermeldung bei .Find

AW: In Excel Sheet nach String suchen
17.03.2008 12:51:00
Mag
Hi,
warum? - Kopier 'mal den modifizierten Code unten in Dein Projekt:

Option Explicit
Sub test()
Dim Anz As Long, a As Long, SuchIN As Range
Dim MeinTXT As String, Zelle As Range
MeinTXT = "abc" 'Mein Suchtext
Set SuchIN = Sheets("Tabelle1").Cells 'Wo soll gesucht werden
'Zähle Zellen mit diesen Textinhalt
Anz = Application.WorksheetFunction.CountIf(SuchIN, "*" & MeinTXT & "*")
With SuchIN
For a = 1 To Anz
If a = 1 Then
'Suche erste
Set Zelle = .Find(what:="*" & MeinTXT & "*", _
After:=Cells(.Row + .Rows.Count - 1, .Column + .Columns.Count - 1), _
LookIn:=xlValues)
MeinTXT = Zelle.Address & Chr(13)
Else
'Suche nächste
Set Zelle = .FindNext(Zelle)
MeinTXT = MeinTXT & Zelle.Address & Chr(13)
End If
Next a
End With
Set Zelle = Nothing
Set SuchIN = Nothing
MsgBox MeinTXT 'Ausgabe der Info
End Sub


Gruss

Anzeige
AW: In Excel Sheet nach String suchen
17.03.2008 13:16:00
Tino
Hallo,
so sollte das ergebnis aussehen.
Userbild
Gruß
Tino
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Strings in Excel durchsuchen mit VBA


Schritt-für-Schritt-Anleitung

Um in einem Excel-Blatt nach einem bestimmten String zu suchen, kannst Du die VBA-Funktion Find verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne die VBA-Entwicklungsumgebung: Drücke ALT + F11.

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub SuchenVBA()
       Dim rngWo As Range
       Dim strWasSuchen As String
       strWasSuchen = "abc" ' Hier deinen Suchtext eingeben
       Set rngWo = ActiveWorkbook.ActiveSheet.UsedRange.Find(strWasSuchen, LookIn:=xlValues, Lookat:=xlPart)
       If Not rngWo Is Nothing Then
           MsgBox "Wert gefunden in: " & rngWo.Address & " in Zeile: " & rngWo.Row
       Else
           MsgBox "Wert nicht gefunden"
       End If
    End Sub
  4. Führe das Makro aus: Schließe die VBA-Umgebung und gehe zurück zu Excel. Drücke ALT + F8, wähle SuchenVBA und klicke auf Ausführen.

Dieser Code sucht nach dem String "abc" und gibt die Adresse der Zelle aus, wenn er gefunden wird. Du kannst den Suchtext anpassen, um verschiedene Texte zu durchsuchen.


Häufige Fehler und Lösungen

  • Fehler bei .Find: Wenn Du einen Fehler beim Aufruf von .Find erhältst, könnte es daran liegen, dass die Referenz auf Cells nicht korrekt gesetzt ist. Achte darauf, dass Du den richtigen Arbeitsblattnamen verwendest.

  • Unzulässiger oder nicht ausreichend definierter Verweis: Dies kann auftreten, wenn Du mit SpecialCells arbeitest. Stelle sicher, dass Du auf eine gültige Zelle verweist, bevor Du diese Methode verwendest.

After:=Sheets("DeinTabellenname").Range("A65500")

Wenn Du die SpecialCells-Methode verwendest, könnte es hilfreich sein, sicherzustellen, dass die Zellen, in denen Du suchst, tatsächlich Daten enthalten.


Alternative Methoden

Neben VBA gibt es auch andere Möglichkeiten, um in Excel nach Text zu suchen:

  • Verwendung der Funktion SVERWEIS: Diese Funktion kann verwendet werden, um Werte zu finden, die einem bestimmten Kriterium entsprechen.

  • Filter-Option: Nutze den Filter in Excel, um die Daten nach bestimmten Kriterien zu durchsuchen.

  • Bedingte Formatierung: Du kannst die bedingte Formatierung verwenden, um Zellen zu markieren, die einen bestimmten Text enthalten.


Praktische Beispiele

Hier sind einige praktische Beispiele für das Suchen von Text in einem Excel-Dokument:

  1. Teilstrings suchen: Wenn Du nach einem Teilstring suchen möchtest, kannst Du die Wildcards * verwenden.

    Set rngWo = ActiveSheet.UsedRange.Find(What:="*abc*", LookIn:=xlValues)
  2. Alle Vorkommen eines Strings finden: Um alle Vorkommen eines Strings zu suchen und anzuzeigen, kannst Du eine Schleife verwenden:

    Sub AlleVorkommenSuchen()
       Dim rngWo As Range
       Dim Suchtext As String
       Dim ErsteAdresse As String
       Suchtext = "abc"
       Set rngWo = ActiveSheet.UsedRange.Find(What:=Suchtext)
    
       If Not rngWo Is Nothing Then
           ErsteAdresse = rngWo.Address
           Do
               MsgBox "Wert gefunden in: " & rngWo.Address
               Set rngWo = ActiveSheet.UsedRange.FindNext(rngWo)
           Loop While Not rngWo Is Nothing And rngWo.Address <> ErsteAdresse
       End If
    End Sub

Tipps für Profis

  • Optimierung der Suche: Setze LookIn:=xlFormulas, wenn Du auch nach Formeln suchen möchtest.

  • Verwendung von Application.Match: Diese Funktion kann verwendet werden, um zu überprüfen, ob ein Wert in einer bestimmten Liste vorhanden ist.

  • Verwende Option Explicit: Dies hilft, Fehler zu vermeiden, indem es sicherstellt, dass alle Variablen deklariert sind.


FAQ: Häufige Fragen

1. Wie kann ich nach mehreren Strings suchen? Du kannst eine Schleife verwenden, um eine Liste von Suchstrings durchzugehen und die .Find-Methode für jeden String anzuwenden.

2. Was mache ich, wenn ich nur nach bestimmten Zellen suchen möchte? Du kannst den Bereich, in dem Du suchst, anpassen, indem Du Set rngWo = Sheets("Tabelle1").Range("A1:A100").Find(...) verwendest, um nur in diesem spezifischen Bereich zu suchen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige