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

Forumthread: Zugriff auf eine Zelle über ihren Namen (VBA)

Zugriff auf eine Zelle über ihren Namen (VBA)
14.07.2004 14:36:27
Christian
Hallo VBAler,
ich habe zwei Arbeitsmappen:
Inhalt der Arbeitsmappe1:
Zelle mit Name "Datei" beinhaltet den Name der Arbeitsmappe2
Zelle mit Name "Wert" beinhaltet einen Wert, der in Arbeitsmappe2 eingetragen werden soll
Eine Schaltfläche
Inhalt der Arbeitsmappe2:
mehrere Arbeitsblätter, in einem befindet sich eine Zelle mit dem Namen "Ziel"
Problem:
Nach Betätigung der Schaltfläche in Arbeitsmappe1 soll der Wert aus dieser Arbeitsmappe in die Zielzelle in Arbeitsmappe2 geschrieben werden. In welchem Tabellenblatt diese Zelle steht, sei nicht bekannt.
Wie sieht der zugrhörige VBA-Code aus?
Viele Grüße
Christian
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zugriff auf eine Zelle über ihren Namen (VBA)
Martin
Hallo Christian,
vielleicht nicht das eleganteste, aber ...
Voraussetzung: Tabelle, in der die Zellen "Datei" und "Wert" stehen, muß bekannt sein (hier: 3. Tabelle) und das Makro steht in einem Modul in Arbeitsmappe 1.

Sub ziel_suchen()
Dat = ThisWorkbook.Worksheets(3).Range("Datei")
Wt = ThisWorkbook.Worksheets(3).Range("Wert")
Workbooks(Dat).Activate
Application.Goto Reference:="Ziel"
ActiveCell = Wt
End Sub

Gruß
Martin Beck
Anzeige
AW: Zugriff auf eine Zelle über ihren Namen (VBA)
14.07.2004 15:51:49
Christian
Hallo Martin,
vielen Dank für deine schnelle Hilfe. Es hat geklappt.
Viele Grüße
Christian
AW: Zugriff auf eine Zelle über ihren Namen (VBA)
GerdZ
Hallo Christian,
hier noch eine andere Variante:
  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
Gruß
Gerd
Anzeige
Ich wußte doch, daß es besser geht ;-) (oT)
Martin
AW: Ich wußte doch, daß es besser geht ;-) (oT)
14.07.2004 16:09:59
Christian
Hallo Gerd,
... war genau das, was ich gesucht habe.
Vielen Dank euch beiden...
Christian

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

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:

  1. Öffne die Arbeitsmappe1, die die Zellen "Datei" und "Wert" enthält.

  2. 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.
  3. 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
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. 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.
  6. 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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige