Ich möchte Spalte A und B von oben nach unten nach einem bestimmten Inhalt durchsuchen.
Weiter bin ich bei meiner Recherche nicht gekommen:
sFind = InputBox("Bitte Suchbegriff eingeben:")
Wenn mir jemand beim Rest helfen könnte...
Danke
Gruß
Marcus
Option Explicit
Sub SuchenMitVBA()
Dim StrFind As String
Dim IntAnfangsZeile As Integer, IntEndZeile As Integer
Dim IntAnfangsSpalte As Integer, IntEndSpalte As Integer
Dim IntZeilenZähler As Integer, IntSpaltenZähler As Integer
Dim BlnGefunden As Boolean
StrFind = InputBox("Suchbegriff Eingeben", "Eingabe Suchbegriff")
IntAnfangsZeile = InputBox("Ab welcher Zeile soll gesucht werden?", "Startzeile")
IntEndZeile = InputBox("Bis zu welcher Zeile soll gesucht werden?", "Endzeile")
IntAnfangsSpalte = InputBox("Ab welcher Spalte soll gesucht werden?", "Startspalte als Zahl")
IntEndSpalte = InputBox("Bis zu welcher Spalte soll gesucht werden?", "Endspalte als Zahl")
For IntSpaltenZähler = IntAnfangsSpalte To IntEndSpalte
For IntZeilenZähler = IntAnfangsZeile To IntEndZeile
If Cells(IntZeilenZähler, IntSpaltenZähler) = StrFind Then BlnGefunden = True
If BlnGefunden Then GoTo Gefunden
Next
Next
Gefunden:
If Not BlnGefunden Then Exit Sub
MsgBox ("Suchbegriff gefunden in" & Chr(13) & "Zeile " & IntZeilenZähler & " Spalte " & _
IntSpaltenZähler)
End Sub
Dim Suchbegriff$
Suchbegriff = InputBox("bitte Suchbegriff eingeben", , "Test")
If StrPtr(Suchbegriff) = 0 Then Exit Sub
Cells.Find(What:=Suchbegriff, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole).Activate
weiter:
Cells.FindNext(After:=ActiveCell).Activate
If MsgBox("Fund in " & ActiveCell.Address & vbLf & "weiter suchen?", vbYesNo, "Suche in allen Zellen") = vbYes Then GoTo weiter
Dim Suchbegriff$
On Error GoTo Fehler
Suchbegriff = InputBox("bitte Suchbegriff eingeben", , "Test")
If StrPtr(Suchbegriff) = 0 Then Exit Sub
Cells.Find(What:=Suchbegriff, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole).Activate
weiter:
Cells.FindNext(After:=ActiveCell).Activate
If MsgBox("Fund in " & ActiveCell.Address & vbLf & "weiter suchen?", vbYesNo, " Suche -> " & _
Suchbegriff) = vbYes Then GoTo weiter
Exit Sub
Fehler:
MsgBox "Suchbegriff wurde nicht gefunden"
Guß Matthias
Um in Excel mit VBA zu suchen und Ergebnisse anzuzeigen, kannst Du den folgenden Code verwenden. Dieser VBA-Code ermöglicht es Dir, einen Suchbegriff einzugeben und die entsprechenden Zellen zu finden.
Option Explicit
Sub SuchenMitVBA()
Dim StrFind As String
Dim IntAnfangsZeile As Integer, IntEndZeile As Integer
Dim IntAnfangsSpalte As Integer, IntEndSpalte As Integer
Dim IntZeilenZähler As Integer, IntSpaltenZähler As Integer
Dim BlnGefunden As Boolean
StrFind = InputBox("Suchbegriff Eingeben", "Eingabe Suchbegriff")
IntAnfangsZeile = InputBox("Ab welcher Zeile soll gesucht werden?", "Startzeile")
IntEndZeile = InputBox("Bis zu welcher Zeile soll gesucht werden?", "Endzeile")
IntAnfangsSpalte = InputBox("Ab welcher Spalte soll gesucht werden?", "Startspalte als Zahl")
IntEndSpalte = InputBox("Bis zu welcher Spalte soll gesucht werden?", "Endspalte als Zahl")
For IntSpaltenZähler = IntAnfangsSpalte To IntEndSpalte
For IntZeilenZähler = IntAnfangsZeile To IntEndZeile
If Cells(IntZeilenZähler, IntSpaltenZähler) = StrFind Then
BlnGefunden = True
GoTo Gefunden
End If
Next
Next
Gefunden:
If Not BlnGefunden Then Exit Sub
MsgBox ("Suchbegriff gefunden in" & Chr(13) & "Zeile " & IntZeilenZähler & " Spalte " & IntSpaltenZähler)
End Sub
Dieser Code fragt den Benutzer nach einem Suchbegriff und den Zeilen- sowie Spaltenbereichen, in denen gesucht werden soll.
Fehler beim Abbrechen der Eingabe
Wenn der Benutzer auf "Abbrechen" klickt, kann es zu einem Fehler kommen. Um dies zu verhindern, sollte eine Fehlerbehandlung implementiert werden.
On Error GoTo Fehler
Nur der erste Fund wird angezeigt
Um alle Funde anzuzeigen, sollte eine Schleife verwendet werden, die nach jedem Fund fragt, ob weitergesucht werden soll.
weiter:
Cells.FindNext(After:=ActiveCell).Activate
If MsgBox("Fund in " & ActiveCell.Address & vbLf & "weiter suchen?", vbYesNo, "Suche in allen Zellen") = vbYes Then GoTo weiter
Eine einfache Möglichkeit, um in Excel VBA zu suchen und anzuzeigen, ist die Verwendung der Cells.Find
-Methode. Hier ist ein Beispielcode:
Dim Suchbegriff$
Suchbegriff = InputBox("bitte Suchbegriff eingeben", , "Test")
If StrPtr(Suchbegriff) = 0 Then Exit Sub
Cells.Find(What:=Suchbegriff, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole).Activate
Diese Methode ermöglicht es Dir, schnell einen Wert zu finden, ohne mehrere Abfragen.
Hier ist ein Beispiel für die Anwendung des Codes:
Wenn Du eine größere Datenmenge hast, kannst Du auch mit Cells.Find
effizienter suchen.
On Error Resume Next
, um die Ausführung fortzusetzen, selbst wenn ein Fehler auftritt. Dies kann nützlich sein, wenn Du mit großen Datenmengen arbeitest.Range.Find
für komplexere Suchfunktionen, wie z.B. das Suchen nach Teilstrings oder das Ignorieren von Groß- und Kleinschreibung.Find
-Methode mit Schleifen, um alle Vorkommen eines Suchbegriffes in einer großen Datenbank zu finden.1. Wie kann ich die Suche nach Teilstrings durchführen?
Du kannst die LookAt
-Eigenschaft auf xlPart
setzen, um nach Teilstrings zu suchen.
2. Gibt es eine Möglichkeit, das Suchen-Fenster direkt zu öffnen?
Ja, Du kannst die Application.Dialogs(xlDialogFind).Show
-Methode verwenden, um das Suchfenster anzuzeigen, ohne einen Suchbegriff vorab einzugeben.
Durch die Nutzung dieser Methoden kannst Du Excel VBA effektiver verwenden, um Daten zu suchen und anzuzeigen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen