Namen in Excel suchen und per Doppelklick zur Zelle springen
Schritt-für-Schritt-Anleitung
Um in Excel per Doppelklick auf einen Namen in einer Liste zur entsprechenden Zelle in einer anderen Tabelle zu springen, befolge diese Schritte:
-
Öffne den Visual Basic for Applications (VBA) Editor:
- Drücke
ALT + F11, um den VBA-Editor zu öffnen.
-
Füge den folgenden Code in das richtige Arbeitsblatt ein:
- Wähle das Arbeitsblatt aus, in dem du die Doppelklick-Funktion implementieren möchtest (zum Beispiel das Blatt „gefunden“).
- Füge den Code in das Codefenster ein:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Suchbegriff As Variant
Dim suchbereich As Range
If Intersect(Target, Range("A2:A30")) Is Nothing Then Exit Sub
Cancel = True
Suchbegriff = Target.Value
With Worksheets("sortiert")
Set suchbereich = .Columns(1).Find(what:=Suchbegriff, LookIn:=xlValues, lookat:=xlWhole)
If Not suchbereich Is Nothing Then
.Activate
suchbereich.Select
End If
End With
End Sub
-
Teste die Funktion:
- Schließe den VBA-Editor und kehre zu deiner Excel-Tabelle zurück.
- Doppelklicke auf einen Namen in der Liste (Zellen A2 bis A30) in der „gefunden“-Tabelle. Du solltest automatisch zur entsprechenden Zelle in der „sortiert“-Tabelle springen.
Häufige Fehler und Lösungen
Alternative Methoden
-
Hyperlinks verwenden:
- Du kannst Hyperlinks in Excel erstellen, um direkt zu den entsprechenden Zellen in der „sortiert“-Tabelle zu springen. Dies kann über Formeln oder VBA erfolgen.
-
Worksheet_SelectionChange-Ereignis:
- Anstatt Doppelklick zu verwenden, könnte das
Worksheet_SelectionChange-Ereignis implementiert werden, um beim Auswählen einer Zelle automatisch zur entsprechenden Zelle in der anderen Tabelle zu springen.
Praktische Beispiele
Hier ist ein Beispiel, wie du den Code anpassen kannst, um die Suche auf eine andere Spalte auszuweiten oder eine zusätzliche Funktion hinzuzufügen:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Suchbegriff As Variant
Dim suchbereich As Range
If Intersect(Target, Range("A2:A30")) Is Nothing Then Exit Sub
Cancel = True
Suchbegriff = Target.Value
With Worksheets("sortiert")
Set suchbereich = .Columns(1).Find(what:=Suchbegriff, LookIn:=xlValues, lookat:=xlWhole)
If Not suchbereich Is Nothing Then
.Activate
suchbereich.Select
Else
MsgBox "Name nicht gefunden."
End If
End With
End Sub
Tipps für Profis
-
Verwende Option Explicit: Füge am Anfang deines VBA-Moduls Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
-
Verfeinere die Suchkriterien: Du kannst die Find-Methode verfeinern, um nach Teilstrings oder in einer bestimmten Art von Daten zu suchen.
-
Nutze benannte Bereiche: Anstatt feste Zellreferenzen zu verwenden, kannst du benannte Bereiche erstellen, um deinen Code flexibler zu gestalten.
FAQ: Häufige Fragen
1. Muss ich VBA aktivieren, um diesen Code zu verwenden?
Ja, du musst die Makros in Excel aktivieren, um VBA-Codes auszuführen.
2. Funktioniert dieser Code in allen Excel-Versionen?
Der VBA-Code sollte in den meisten modernen Excel-Versionen, einschließlich Excel 2010 und neuer, funktionieren. Achte darauf, dass dein Excel VBA unterstützt.