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

Forumthread: per vba nach wort suchen und Zelle ausgeben

per vba nach wort suchen und Zelle ausgeben
stefanseevetal
Hallo liebe Experten!
Ich benötige eine Suchfunktion, mit der ich eine Zeile nach einem bestimmten Wort durchsuchen kann. Wenn das Wort in der Zeile gefunden wird, möchte ich die Zelle, in der das Wort steht als Ergebnis ausgegeben haben. Beispiel: Suche das Wort "Walter", Ergebnis: Cells(25,30)
Kann mir jemand damit helfen?
Danke und Gruß,
Stefanseevetal
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: per vba nach wort suchen und Zelle ausgeben
16.01.2011 17:21:49
Gerd
Hallo Stefan,
die Bedeutung der einzelnen Argumente steht in der VBA-Hilfe unter "Find-Methode"
Dim strString as String, rngCell as Range
strString= "Walter"
Set RngCell= Rows(25).Find(strString, lookat:=xlWhole, lookin:=xlValues, MatchCase:= True)
If not rngCell is nothing then
Msgbox rngCell.Address
Else
msgbox "war nicht dabei"
End if
Gruß Gerd
Anzeige
AW: per vba nach wort suchen und Zelle ausgeben
16.01.2011 18:47:24
stefanseevetal
Hallo Gerd,
vielen Dank, es funktioniert wunderbar. Allerdings habe ich noch ein Problem. Wenn ich das Wort "Walter" gefunden habe, möchte ich die 5 darunterliegenden Zellen markieren und kopieren. Wie bekomme ich es hin, dass die 5 Zellen unter der Zellangabe rngCell.Address markiert und kopiert und in einem anderen Tabellenblatt eingefügt werden?
Sorry, hätte ich auch gleicht mitposten können, dachte aber ich bekomme es dann hin.
Danke für die Hilfe und viele Grüße
Stefan seevetal
Anzeige
AW: per vba nach wort suchen und Zelle ausgeben
16.01.2011 19:10:41
Gerd
Hallo Stefan,
statt Msgbox rngCell.Address
rngCell.offset(1, 0).Resize(5, 1).Copy Destination:= Worksheets("NameAndereTabelle").Cells(x,y)
Für x u. y musst Du die Zeilen- bzw. Spaltennummer einsetzen.
Gruß Gerd

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Zelle nach Wort durchsuchen und ausgeben mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Neues Modul erstellen: Klicke im Menü auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Code einfügen: Füge den folgenden Code in das Modul ein:

    Sub WortSuchenUndZelleAusgeben()
       Dim strString As String
       Dim rngCell As Range
    
       strString = "Walter" ' Das Wort, nach dem gesucht wird
       Set rngCell = Rows(25).Find(strString, lookat:=xlWhole, lookin:=xlValues, MatchCase:=True)
    
       If Not rngCell Is Nothing Then
           MsgBox rngCell.Address ' Adresse der gefundenen Zelle anzeigen
       Else
           MsgBox "Wort nicht gefunden"
       End If
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: "Wort nicht gefunden"

    • Lösung: Stelle sicher, dass das Wort genau so in der Zeile steht, wie es im Code definiert ist (Groß-/Kleinschreibung beachten).
  • Fehler: Excel gibt eine Fehlermeldung aus oder stürzt ab.

    • Lösung: Überprüfe, ob der Code korrekt kopiert wurde und keine Syntaxfehler enthält.

Alternative Methoden

  • Verwendung von Offset und Resize: Um die Zelle mit einem bestimmten Inhalt zu markieren und die darunterliegenden Zellen zu kopieren, kannst du den folgenden Code verwenden:

    If Not rngCell Is Nothing Then
       rngCell.Offset(1, 0).Resize(5, 1).Copy Destination:=Worksheets("NameAndereTabelle").Cells(x, y)
    End If
  • Excel-Formeln: Eine alternative Methode zur Suche nach Wörtern in Excel ist die Verwendung von Formeln, wie VERGLEICH oder SVERWEIS.


Praktische Beispiele

  • Beispiel 1: Suchfunktion für ein bestimmtes Wort in der gesamten Tabelle:

    Sub SucheInGanzemBlatt()
       Dim strString As String
       Dim rngCell As Range
    
       strString = "Walter"
       Set rngCell = Cells.Find(strString)
    
       If Not rngCell Is Nothing Then
           MsgBox "Das Wort " & strString & " wurde gefunden in: " & rngCell.Address
       Else
           MsgBox "Wort nicht gefunden"
       End If
    End Sub
  • Beispiel 2: Suche nach einem Wort in einer bestimmten Spalte:

    Sub SucheInSpalte()
       Dim strString As String
       Dim rngCell As Range
    
       strString = "Walter"
       Set rngCell = Columns(2).Find(strString) ' Sucht in Spalte B
    
       If Not rngCell Is Nothing Then
           MsgBox "Das Wort " & strString & " gefunden in: " & rngCell.Address
       Else
           MsgBox "Wort nicht gefunden"
       End If
    End Sub

Tipps für Profis

  • Verwende LookAt:=xlPart, um auch Teilwörter zu finden.
  • Kombiniere die Find-Methode mit Schleifen, um mehrere Vorkommen eines Wortes zu finden.
  • Nutze die Error-Behandlung, um Fehler beim Suchen zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich nach mehreren Wörtern suchen?
Du kannst eine Schleife verwenden, um durch eine Liste von Wörtern zu iterieren und die Find-Methode für jedes Wort aufzurufen.

2. Funktioniert der Code in allen Excel-Versionen?
Ja, der Code sollte in den meisten Versionen von Excel funktionieren, die VBA unterstützen (Excel 2003 und neuer).

3. Kann ich die Suche auch in mehreren Zeilen durchführen?
Ja, du kannst die Find-Methode auf verschiedene Zeilen anwenden, indem du eine Schleife über die gewünschte Zeilenanzahl erstellst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige