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

Forumthread: Wert aus aktueller Zelle per VBA suchen

Wert aus aktueller Zelle per VBA suchen
01.02.2016 00:35:17
Matthias
Hallo Excel Profis
Habe jetzt gefühlt das halbe Internet durchforstet und bin immer noch nicht schlauer.
Ich habe folgendes Problem:
Wie könnte ein Makro aussehen, dass den Wert aus der aktuell markierten Zelle in einem zweiten Tabellenblatt sucht und markiert?
Zusätzlich sollte man in diesem Makro den Suchbereich in Tabelle2 eingrenzen können, z.B. sodass nur in Spalte B gesucht wird.
Da ich absoluter Anfänger bin, wäre ich über kommentierten Code sehr dankbar.
Danke schonmal für die Hilfe
Grüße Matthias

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
doppelt - owT
01.02.2016 06:55:05
otto

AW: Wert aus aktueller Zelle per VBA suchen
01.02.2016 08:37:09
KlausF
Hallo Matthias,
Sub Finden()
'Variablen definieren
Dim rng As Range
Dim strSuch As Variant
'Suchwort = Inhalt von aktiver Zelle
strSuch = ActiveCell.Value
'Wenn Zelle leer dann beende Makro
If strSuch = "" Then Exit Sub
'Suchbereich angeben und suchen
Set rng = Worksheets("Tabelle2").Range("B:B").Find(What:=strSuch, LookIn:=xlValues, LookAt:= _
xlPart, _
SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
'Falls etwas gefunden wird
If Not rng Is Nothing Then
'Tabelle2 aktivieren und Suchbegriff anzeigen
Worksheets("Tabelle2").Activate
rng.Select
End If
'Variable zurücksetzen
Set rng = Nothing
End Sub
Gruß
Klaus
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Wert aus aktueller Zelle per VBA suchen


Schritt-für-Schritt-Anleitung

Um den Wert aus der aktuell markierten Zelle per VBA zu suchen und in einem anderen Tabellenblatt zu markieren, kannst du folgendes Makro verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Menü auf Einfügen -> Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Sub Finden()
    'Variablen definieren
    Dim rng As Range
    Dim strSuch As Variant

    'Suchwort = Inhalt von aktiver Zelle
    strSuch = ActiveCell.Value

    'Wenn Zelle leer dann beende Makro
    If strSuch = "" Then Exit Sub

    'Suchbereich angeben und suchen
    Set rng = Worksheets("Tabelle2").Range("B:B").Find(What:=strSuch, LookIn:=xlValues, LookAt:= _
    xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)

    'Falls etwas gefunden wird
    If Not rng Is Nothing Then
        'Tabelle2 aktivieren und Suchbegriff anzeigen
        Worksheets("Tabelle2").Activate
        rng.Select
    End If

    'Variable zurücksetzen
    Set rng = Nothing
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Wähle eine Zelle aus, deren Wert du suchen möchtest, und führe das Makro aus.

Häufige Fehler und Lösungen

  • Fehler: "Das Makro kann nicht gefunden werden"

    • Stelle sicher, dass du das Makro im richtigen Modul gespeichert hast und dass die Makros in deinen Excel-Einstellungen aktiviert sind.
  • Fehler: "Suchbegriff nicht gefunden"

    • Überprüfe, ob der Wert in der aktiven Zelle tatsächlich in der angegebenen Spalte von Tabelle2 vorhanden ist.
  • Fehler: Makro läuft nicht

    • Vergewissere dich, dass du eine Zelle ausgewählt hast, bevor du das Makro ausführst. Das Makro benötigt einen Wert aus der aktiven Zelle, um zu funktionieren.

Alternative Methoden

Eine alternative Methode, um Werte zu suchen, ist die Verwendung der VLOOKUP-Funktion in Excel. Diese Funktion kann verwendet werden, um Werte in einer Tabelle zu finden, ohne VBA zu verwenden. Hier ein Beispiel:

=VLOOKUP(A1, Tabelle2!B:C, 2, FALSE)

Diese Formel sucht den Wert in Zelle A1 in der Spalte B von Tabelle2 und gibt den entsprechenden Wert aus Spalte C zurück.


Praktische Beispiele

Angenommen, du hast folgende Werte in Tabelle1:

A
Apfel
Banane
Orange

Und in Tabelle2:

B
Apfel
Birne
Banane

Wenn du das Makro ausführst, während "Banane" in der aktiven Zelle steht, wird Excel die Zelle mit "Banane" in Tabelle2 markieren.


Tipps für Profis

  • Verwende die FindNext-Methode, um alle Vorkommen eines Wertes zu finden, nicht nur das erste.
  • Optimiere dein Makro, indem du die Suchparameter anpasst, z.B. LookAt:=xlWhole, um nur exakte Übereinstimmungen zu finden.
  • Kommentiere deinen Code, um die Lesbarkeit zu verbessern und zukünftige Änderungen zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich den Suchbereich anpassen? Du kannst den Suchbereich im Code ändern, indem du die Zeile Set rng = Worksheets("Tabelle2").Range("B:B") anpasst, z.B. Range("B1:B10"), um nur die ersten 10 Zeilen zu durchsuchen.

2. Funktioniert das auch in Excel Online? Leider unterstützt Excel Online keine VBA-Makros. Diese Anleitung gilt nur für die Desktop-Version von Excel.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige