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

Forumthread: In Spalte nach wert suchen und springen

In Spalte nach wert suchen und springen
03.02.2019 20:26:30
nightcab
Hallo Leute!
Dieses Makro suche in einer Tabelle nach dem Wert "Lesen".
Werden mehrere gleiche Werte gefunden, werden diese nacheinander angesprungen.

Sub findme()
Cells.Find(What:="Lesen", After:=ActiveCell, LookIn:=xlValues, lookat _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
End Sub
Nun möchte ich aber, dass das Scrpt nicht in der ganzen Tabelle sucht.
Der Bereich in dem das Script sucht soll eingegrenzt werden.
Der Suchbereich z.B.(E100:E150) steht in Zelle "E1".
Bitte um Hilfe!
Gruß nightcab
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Spalte nach wert suchen und springen
03.02.2019 20:57:15
Nepumuk
Hallo,
so:
Sub findme()
Range(Cells(1,5).Value).Find(What:="Lesen", After:=ActiveCell, LookIn:=xlValues, lookat _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
End Sub

Gruß
Nepumuk
Anzeige
AW: In Spalte nach wert suchen und springen
03.02.2019 21:09:14
nightcab
Hallo Nepumuk!
Ich habe in ein Testblatt alles eingetragen und in E1 "B1:B10" geschreiben.
Nun kommt die Fehlermedung:

Laufzeitfehler '1004':
Die Methode 'Range' für das Objekt  '_Worksheet' ist fehlgeschlagen
Was ist da falsch?
Gruß nightcab
Anzeige
AW: In Spalte nach wert suchen und springen
03.02.2019 21:11:24
nightcab
ach ja... den Suchwert habe ich jetzt in Spalte B eingetragen
AW: In Spalte nach wert suchen und springen
03.02.2019 21:44:09
Nepumuk
Hallo,
ooops, klar, die Zelle für After muss im Suchbereich liegen. Teste mal:
Public Sub FindIt()
    Dim objCell As Range
    Application.ScreenUpdating = False
    With Range(Cells(1, 5).Value)
        If Intersect(ActiveCell, Range(Cells(1, 5).Value).Cells(1, 1).Resize( _
            Range(Cells(1, 5).Value).Rows.Count, Range(Cells(1, 5).Value).Columns.Count)) _
            Is Nothing Then .Cells(.Rows.Count, .Columns.Count).Select
        Set objCell = .Find(What:="Schwert", After:=ActiveCell, _
            LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)
        If Not objCell Is Nothing Then
            objCell.Select
            Set objCell = Nothing
        Else
            MsgBox "Nix gefunden"
        End If
    End With
    Application.ScreenUpdating = True
End Sub

Gruß
Nepumuk
Anzeige
AW: In Spalte nach wert suchen und springen
03.02.2019 22:06:20
nightcab
Hi Nepumuk!
Es hat sich leider nichts verändert. Bekomme noch immer die Fehlermeldung.
Und bei deinem Script kann ich den Suchberich auch nicht bestimmen was ich eigentlich bezweckte.
Gruß nightcab
AW: In Spalte nach wert suchen und springen
03.02.2019 22:15:04
Nepumuk
Hallo,
kann ich nicht nachvollziehen. Meine Testmappe: https://www.herber.de/bbs/user/127394.xlsm
Gruß
Nepumuk
Anzeige
AW: In Spalte nach wert suchen und springen
03.02.2019 22:19:44
nightcab
ok,ok, mein Fehler! Ich habe in E1 den Suchbegriff geschreiben.
Dein Script funktioniert! Danke!
Gruß nightcab
AW: In Spalte nach wert suchen und springen
06.02.2019 11:29:32
nightcab
Hallo Nepumuk!
Ich hab zu dem Script noch eine Frage.
Es betrifft diese Zeile

Private Sub CommandButton1_Click()
Dim objCell As Range
Application.ScreenUpdating = False
With Range(Cells(5, 3).Value)
If Intersect(ActiveCell, Range(Cells(5, 3).Value).Cells(1, 1).Resize( _
Range(Cells(5, 3).Value).Rows.Count, Range(Cells(5, 3).Value).Columns.Count)) _
Is Nothing Then .Cells(.Rows.Count, .Columns.Count).Select
Set objCell = .Find(what:="IRGENDWAS", after:=ActiveCell, _
LookIn:=xlValues, lookat:=xlPart, MatchCase:=False)
If Not objCell Is Nothing Then
objCell.Select
Set objCell = Nothing
Else
MsgBox "Nix gefunden"
End If
End With
Application.ScreenUpdating = True
End Sub
Ich würde das gerne so machen, dass der Suchbegriff "IRGENDWAS" nicht fix im Script eingetragen ist, sondern dass er aus einer Zelle, z.B. Zelle A1, ausgelesen wird. Dann würde ich in A1 ein Dropdown einrichten und hätte somit die schönste - auf meine Bedürfnisse angepasse - Suchmaschine.
Gruß nightcab
Anzeige
AW: In Spalte nach wert suchen und springen
06.02.2019 11:38:56
Nepumuk
Hallo,
dann ersetze "IRGENDWAS" durch Cells(1, 1).Value
Gruß
Nepumuk
AW: In Spalte nach wert suchen und springen
06.02.2019 12:10:35
nightcab
Prima! Funktioniert bestens, Danke!
Gruß nightcab
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

In Spalte nach Wert suchen und springen


Schritt-für-Schritt-Anleitung

Um in Excel nach einem bestimmten Wert in einer Spalte zu suchen und zu dieser Zelle zu springen, kannst du ein VBA-Makro verwenden. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul ein, indem du mit der rechten Maustaste auf "VBAProject (deineDatei.xlsx)" klickst und "Einfügen" > "Modul" wählst.

  3. Kopiere und füge den folgenden Code in das Modul ein:

    Sub findme()
       Dim searchRange As Range
       Set searchRange = Range(Cells(1, 5).Value) ' Hier wird der Suchbereich in Zelle E1 definiert
       searchRange.Find(What:="Lesen", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Activate
    End Sub
  4. Stelle sicher, dass in Zelle E1 der korrekte Bereich (z.B. B1:B10) angegeben ist.

  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus, indem du ALT + F8 drückst, das Makro auswählst und auf "Ausführen" klickst.


Häufige Fehler und Lösungen

  • Laufzeitfehler '1004': Die Methode 'Range' für das Objekt '_Worksheet' ist fehlgeschlagen.

    • Überprüfe, ob der in Zelle E1 angegebene Bereich korrekt ist. Der Bereich muss in dem Format A1:B10 angegeben sein.
  • Das Makro springt nicht zu dem gewünschten Wert.

    • Stelle sicher, dass der Suchwert in der angegebenen Spalte existiert und dass du den korrekten Wert suchst.

Alternative Methoden

Falls du nicht mit VBA arbeiten möchtest, kannst du auch die Funktion SVERWEIS() verwenden, um nach einem Wert in einer Spalte zu suchen. Diese Methode zeigt dir jedoch nicht direkt, wo sich der Wert befindet. Eine einfache Formel wäre:

=SVERWEIS("Lesen", B1:B10, 1, FALSCH)

Diese Formel gibt den Wert zurück, wenn er gefunden wird, oder einen Fehler, wenn nicht.


Praktische Beispiele

  1. Makro zur Suche nach "Lesen":

    • Verwende das oben beschriebene Makro, um nach dem Begriff "Lesen" in einem definierten Bereich zu suchen.
  2. Dropdown-Liste für die Suche:

    • Um die Suche flexibler zu gestalten, kannst du den Suchbegriff in Zelle A1 eingeben und den Code anpassen:
    Set objCell = searchRange.Find(What:=Cells(1, 1).Value, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, MatchCase:=False)

Tipps für Profis

  • Nutze die Möglichkeit, die Suche dynamisch zu gestalten, indem du den Suchwert aus einer Zelle ausliest. So kannst du ein benutzerdefiniertes Suchfeld in Excel erstellen.
  • Verwende die Application.ScreenUpdating = False Zeile, um die Bildschirmaktualisierung während der Makroausführung zu deaktivieren. Dies macht die Ausführung schneller und verhindert Flackern.

FAQ: Häufige Fragen

1. Wie kann ich den Suchbereich dynamisch ändern? Du kannst den Suchbereich in einer Zelle definieren (z.B. E1) und dann im Makro auf diese Zelle zugreifen.

2. Kann ich auch mehrere Werte gleichzeitig suchen? Ja, du kannst eine Schleife verwenden, um mehrere Suchbegriffe nacheinander abzuarbeiten.

3. Was mache ich, wenn der gesuchte Wert nicht gefunden wird? Füge eine Fehlerbehandlung in dein Makro ein, um eine entsprechende Nachricht anzuzeigen, wenn der Wert nicht gefunden wird.

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