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

Forumthread: Werte von benannten Zellen in VBA auslesen

Werte von benannten Zellen in VBA auslesen
10.07.2008 10:02:00
benannten
Hallo Zusammen,
ich bin hier auf was gestossen, was ich so nicht ganz nachvollziehen kann.
Ich möchte den Inhalt einer mit einem Namen benannten Zelle in VBA auslesen.
Jetzt habe ich 2 Wege gefunden, die funktionieren - nur der eine macht noch nicht ganz das was er soll.
Folgender Code funktioniert - ist mir aber zu umständlich und widerspricht eigentlich auch dem Sinn von Namen:

dbAdresse = Sheets("DB-Zugang-Daten").Range("dbAdresse").Value


Alternativ habe ich auch schon folgenden Makro-Code funktionierend gesehen, nur gibt mir das dann nur einen leeren Inhalt aus:


dbAdresse = [dbAdresse]


Wo liegt bei der unteren Datei das Problem? Eigentlich sind die Namen doch in Excel nicht fest mit einem Blatt auszuweisen. Ich habe auch eine Datei hier, da funktioniert kurioserweise der untere Code auch.
Tausend Dank schonmal vorab.

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Werte von benannten Zellen in VBA auslesen
10.07.2008 10:35:00
benannten
Hi John,
wenn der Name global für die Arbeitsmappe definiert ist, brauchst du keinen so langen Code - es reicht

dbAdresse = Range("dbAdresse")


Es sei denn, du hast für jedes Tabellenblatt den Namen dbAdresse definiert, dann musst du den Tabellennamen davorsetzen.



Anzeige
AW: Werte von benannten Zellen in VBA auslesen
10.07.2008 10:48:00
benannten
Hallo Karin,
danke für den Tipp - das macht das schonmal schlanker.
Weisst du auch was über die Sache mit den eckigen Klammern?

AW: Werte von benannten Zellen in VBA auslesen
10.07.2008 11:01:11
benannten
Hi John,
m.W. sind die eckigen Klammern eine andere (veraltete) Schreibweise für Range.
Was bei dir damit nicht funktionert, weiß ich nicht, da ich deine Arbeitsmappe nicht kenne. Hast du vielleicht das Tabellenblatt mit dem definierten Namen kopiert? Dann gibt es diesen Namen in 2 Tabellenblättern und wenn du dich in dem kopierten Tabellenblatt befindest und es steht in der betreffenden Zelle nichts drin, dann wird auch nichts angezeigt.


Anzeige
AW: Werte von benannten Zellen in VBA auslesen
10.07.2008 13:07:00
benannten
Ok - vielen Dank für die Info. Wenn das eine alte Schreibweise ist, dann werde ich das gar nicht mehr verwenden.
Vielen Dank - die andere Lösung funktioniert ja klasse.

AW: Werte von benannten Zellen in VBA auslesen
10.07.2008 13:18:04
benannten
Hi John,
ich muss mich ein klein wenig korrigieren: ist nicht eine veraltete, sondern einfach andere Schreibweise, aber sie ist langsamer bei der Abarbeitung im Code.


Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Werte von benannten Zellen in VBA auslesen


Schritt-für-Schritt-Anleitung

Um den Inhalt einer mit einem Namen benannten Zelle in Excel VBA auszulesen, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Klicke auf Einfügen > Modul.

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

    Sub AuslesenWertBenannteZelle()
       Dim dbAdresse As String
       dbAdresse = Range("dbAdresse").Value
       MsgBox "Der Wert der benannten Zelle ist: " & dbAdresse
    End Sub
  4. Führe das Makro aus: Drücke F5 oder gehe zu Ausführen > Sub/UserForm ausführen, um das Makro auszuführen.

Mit diesem Code greifst du auf die benannte Zelle zu und kannst den Wert auslesen.


Häufige Fehler und Lösungen

  • Leerer Inhalt: Wenn der Wert der benannten Zelle leer ist, wird auch nichts angezeigt. Stelle sicher, dass die Zelle tatsächlich einen Wert enthält.

  • Falsche Schreibweise: Vergewissere dich, dass der Name der benannten Zelle korrekt eingegeben wurde. Ein Tippfehler führt dazu, dass der Inhalt nicht gefunden wird.

  • Globale vs. lokale Namen: Wenn der Name nicht global definiert ist, musst du den Tabellennamen angeben. Zum Beispiel:

    dbAdresse = Sheets("Tabellenblatt1").Range("dbAdresse").Value

Alternative Methoden

Es gibt verschiedene Möglichkeiten, Werte von benannten Zellen in VBA auszulesen:

  1. Eckige Klammern: Du kannst auch die eckigen Klammern verwenden, um auf die Zelle zuzugreifen:

    dbAdresse = [dbAdresse]

    Beachte, dass dies manchmal zu unerwarteten Ergebnissen führen kann, wenn der Name nicht eindeutig ist.

  2. Verwendung von Cells: Wenn du den Namen nicht verwenden möchtest, kannst du auch die Cells-Methode verwenden, um auf den Wert zuzugreifen:

    dbAdresse = Sheets("Tabellenblatt1").Cells(1, 1).Value

Praktische Beispiele

Hier sind einige praktische Anwendungsfälle:

  1. Wert aus einer Zelle auslesen:

    Sub WertAusZelleAuslesen()
       Dim zellenWert As Variant
       zellenWert = Range("A1").Value
       MsgBox "Der Wert aus Zelle A1 ist: " & zellenWert
    End Sub
  2. Inhalt einer benannten Zelle auslesen und einfügen:

    Sub WertAusBenannterZelleEinfügen()
       Dim wert As String
       wert = Range("dbAdresse").Value
       Range("B1").Value = wert
    End Sub

Tipps für Profis

  • Verwendung von Option Explicit: Setze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.

  • Debugging: Nutze Debug.Print im Code, um Werte in das Direktfenster auszugeben, während du den Code testest.

  • Makros optimieren: Überlege, ob du die Verwendung von eckigen Klammern vermeiden kannst, da sie langsamer sein können. Bevorzuge die Verwendung von Range oder Cells.


FAQ: Häufige Fragen

1. Wie kann ich den Inhalt einer benannten Zelle in eine andere Zelle einfügen?
Du kannst den Wert der benannten Zelle einfach einer anderen Zelle zuweisen, wie im Beispiel WertAusBenannterZelleEinfügen gezeigt.

2. Was sind die Vor- und Nachteile der Verwendung von eckigen Klammern?
Die eckigen Klammern sind eine alternative Schreibweise, können jedoch langsamer sein und zu Verwirrung führen, wenn der Name nicht eindeutig ist. Es ist besser, Range oder Cells zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige