Zugriff auf eine Zelle über ihren Namen in Excel mit VBA
Schritt-für-Schritt-Anleitung
Um auf eine Zelle über ihren Namen in Excel zuzugreifen und einen Wert zu übertragen, folge diesen Schritten:
-
Öffne die Arbeitsmappe1, die die Zellen "Datei" und "Wert" enthält.
-
Erstelle ein neues Modul für dein VBA-Makro:
- Drücke
ALT + F11, um den VBA-Editor zu öffnen.
- Klicke mit der rechten Maustaste auf "VBAProject (dein Arbeitsmappenname)" und wähle
Einfügen > Modul.
-
Füge den folgenden VBA-Code in das Modul ein:
Sub ziel_suchen()
Dim Dat As String
Dim Wt As Variant
Dat = ThisWorkbook.Worksheets(3).Range("Datei").Value
Wt = ThisWorkbook.Worksheets(3).Range("Wert").Value
Workbooks(Dat).Activate
Application.Goto Reference:="Ziel"
ActiveCell.Value = Wt
End Sub
-
Schließe den VBA-Editor und gehe zurück zu Excel.
-
Füge eine Schaltfläche hinzu, um das Makro auszuführen:
- Gehe zu
Entwicklertools > Einfügen > Schaltfläche (Formularsteuerelement) und ziehe sie auf dein Arbeitsblatt.
- Wähle das Makro
ziel_suchen aus.
-
Klicke auf die Schaltfläche, um den Wert von "Wert" in die "Ziel"-Zelle der Arbeitsmappe2 zu übertragen.
Häufige Fehler und Lösungen
Fehler: "Ziel" nicht gefunden
Lösung: Stelle sicher, dass die Zielzelle in der zweiten Arbeitsmappe tatsächlich den Namen "Ziel" hat. Prüfe auch, ob die Arbeitsmappe2 geöffnet ist.
Fehler: Arbeitsmappe nicht gefunden
Lösung: Überprüfe, ob der Name in der Zelle "Datei" korrekt ist und die Arbeitsmappe2 sich im gleichen Verzeichnis befindet.
Alternative Methoden
Eine alternative Methode ist die Verwendung von RefersToRange. Hier ist ein Beispiel:
Sub ziel_suchen_alt()
Dim sDatei As String, dWert As Double
sDatei = ActiveWorkbook.Names("Datei").RefersToRange.Value
dWert = ActiveWorkbook.Names("Wert").RefersToRange.Value
Workbooks(sDatei).Names("Ziel").RefersToRange.Value = dWert
End Sub
Diese Methode benötigt kein aktives Blatt, sondern greift direkt auf die benannten Bereiche zu.
Praktische Beispiele
Angenommen, du hast in Arbeitsmappe1 folgende Werte:
- Zelle "Datei":
Arbeitsmappe2.xlsx
- Zelle "Wert":
100
Wenn du das Makro ausführst, wird der Wert 100 in die benannte Zelle "Ziel" in Arbeitsmappe2.xlsx geschrieben.
Tipps für Profis
-
Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
-
Nutze Fehlerbehandlungsroutinen, um den Code robuster zu machen. Beispiel:
On Error Resume Next
' Dein Code hier
If Err.Number <> 0 Then
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
End If
On Error GoTo 0
-
Halte deine Arbeitsmappen organisiert, damit du schnell zu den benötigten Zellen navigieren kannst.
FAQ: Häufige Fragen
1. Kann ich das Makro auch in Excel Online verwenden?
Nein, VBA-Makros sind nur in der Desktop-Version von Excel verfügbar.
2. Was sind benannte Bereiche und wie kann ich sie erstellen?
Benannte Bereiche sind benannte Zellen oder Zellbereiche, die dir helfen, deine Formeln und VBA-Referenzen zu vereinfachen. Du kannst sie erstellen, indem du eine Zelle auswählst, in das Namensfeld oben links den Namen eingibst und Enter drückst.