Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zugriff auf benannte Zellen

Zugriff auf benannte Zellen
30.12.2007 20:33:01
Peter
Hallo Forum,
ist es möglich auf benante Bereiche in mehreren Tabellenblätter
zuzugreifen?
siehe Bsp.

Sub benannteZellen()
Dim rng As Range
Set rng = Evaluate(ActiveWorkbook.Names("xy").Name)
rng.Value = "benannte Zelle"
MsgBox rng.Value
End Sub


https://www.herber.de/bbs/user/48717.xls
Danke und einen guten Rutsch in's neue Jahr
Peter

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zugriff auf benannte Zellen
30.12.2007 20:56:37
Daniel
Hi
sorry, ich verstehe das Problem nicht ganz.
kleiner Hinweis, die NAMEN lassen sich in Excel recht einfach verwenden:

Range("XY").value ="benannte Zelle"


würde völlig ausreichen.
wenn die Namen fürs ganze Workbook definiert sind, sollte es so kein Problem geben.
sind die Namen Sheet-Spezifisch definiert, muss man halt das Sheet noch dazusetzen.


Sheets("Tabelle1").Range("Druckbereich").select


wenn man den Zellbereich, der in einem Sheet per Namen definiert ist, in einem anderen Sheet verwenden, dann wirds etwas umständlicher, geht aber auch:


Sheets("Tabelle1").Range(Range("XY").address).select


würde die Zellen die als XY in Tabelle3 in Tabelle1 markieren
ich hoffe es war was für dich dabei, wenn nicht nochmal nachfragen.
Gruß, Daniel

Anzeige
AW: Zugriff auf benannte Zellen
30.12.2007 21:54:00
Luschi
Hallo Daniel,
hast Du diese Beispiele mal getestet, bevor Du sie hier postest. So viele Fehler in einer Antwort habe ich schon lange nicht erlebt. Es ist richtig, das Namen dem Workbook oder einer einzelnen Tabelle gehören.
Egal wie, wenn nicht das Worksheet aktiv ist, auf dessen Referenz der Name zeigt, dann ist das hier völlig falsch (Tabelle2 ist aktiv):
- Sheets("Tabelle1").Range("Druckbereich").select
- Sheets("Tabelle1").Range(Range("XY").address).select
Da Range (und auch Cells) sich immer auf das gerade aktive Worksheet beziehen, der Name aber auch auf einen Tabellenbereich in einem ganz anderen Worksheet zeigen kann, muß man es so machen:
Range("XY").Parent.Activate
Range("XY").Select
Also erst das richtige Worksheet aktivieren und dann den dazugehörigen Zellbereich. Leider liest man auch in der Excel-Vba-Hilfe solchen falschen Code.
Der Name 'Druckbereich' ist auch kein gutes Beispiel, Excel verwendet diesen Namen intern und für jedes Tabellenblatt gibt es so einen Namen, sobald die Seitenvorschau für die Tabelle mal betätigt oder das Tabellenblatt gedruckt wurde; d.h., dieser Name kann keinem bestimmten Bereich zugeordnet werden und somit ergibt auch das hier einen Vba-Fehler:
Range("Druckbereich").Parent.Select
Range("Druckbereich").Activate
Falls Peter die Frage beantortet wissen wollte, ob man Bereiche aus mehreren Tabellen in 1 Namen definieren kann, so lautet die Antwort: NEIN!
Gruß von Luschi
aus klein-Paris

Anzeige
Zusatz
30.12.2007 22:06:34
Luschi
Wenn der Inhalt eines Namensbereiches verändert werden soll, der zur Arbeitsmappe gehört, dann funktioniert dieser Befehl auch, wenn nicht die richtige Tabelle aktiviert ist:
- Range("xy").Value = "irgendetwas"
Gehört der Name aber zu eine bestimmten Tabelle und eine andere Tabelle ist aktiv, dann kommt auch hier ein Vba-Fehler.
Gruß von Luschi
aus klein-paris

Anzeige
AW: Zugriff auf benannte Zellen
30.12.2007 20:57:00
Josef
Hallo Peter,
meinst du so?
Sub benannteZellen()
Dim rng As Range

Set rng = Range("xy")
rng.Value = "benannte Zelle"
MsgBox rng.Value
End Sub

Gruß Sepp

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zugriff auf benannte Zellen in Excel


Schritt-für-Schritt-Anleitung

Um auf benannte Zellen in Excel zuzugreifen, kannst du den folgenden VBA-Code verwenden. Dieser Code zeigt, wie du eine benannte Zelle ansprechen und deren Wert ändern kannst:

Sub benannteZellen()
    Dim rng As Range
    Set rng = Evaluate(ActiveWorkbook.Names("xy").Name)
    rng.Value = "benannte Zelle"
    MsgBox rng.Value
End Sub

Falls du sicherstellen möchtest, dass die benannte Zelle in einem bestimmten Worksheet zu finden ist, kannst du es so machen:

Sub benannteZellen()
    Dim rng As Range
    Set rng = Sheets("Tabelle1").Range("XY")
    rng.Value = "benannte Zelle"
    MsgBox rng.Value
End Sub

Häufige Fehler und Lösungen

  1. Fehler: VBA-Fehler beim Zugriff auf benannte Bereiche

    • Lösung: Stelle sicher, dass das richtige Worksheet aktiv ist, bevor du auf den benannten Bereich zugreifst. Verwende Range("XY").Parent.Activate, um das zugehörige Worksheet zu aktivieren.
  2. Fehler: "Name not defined"

    • Lösung: Überprüfe, ob die benannten Bereiche korrekt definiert sind. Du kannst alle benannten Bereiche mit Excel benannte Bereiche anzeigen, um sicherzustellen, dass der Name existiert.

Alternative Methoden

Wenn du auf benannte Zellen zugreifen möchtest, kannst du diese Methoden verwenden:

  • Direkter Zugriff auf benannte Zellen:

    Range("XY").Value = "neuer Wert"
  • Verwendung von Evaluate:

    Dim rng As Range
    Set rng = Evaluate("xy")
    rng.Value = "neuer Wert"

Diese Methoden bieten Flexibilität, je nachdem, ob du auf benannte Bereiche in einem spezifischen Worksheet oder global zugreifen möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele, um benannte Zellen in verschiedenen Szenarien zu verwenden:

  1. Ändern des Wertes einer benannten Zelle:

    Sub ÄndereWert()
       Range("xy").Value = "Neuer Inhalt"
    End Sub
  2. Zugriff auf eine benannte Zelle in einem anderen Tabellenblatt:

    Sub ZugriffAufAnderesBlatt()
       Sheets("Tabelle2").Range("xy").Value = "Neuer Wert auf Tabelle2"
    End Sub

Tipps für Profis

  • Verwendung von With-Anweisungen: Um den Code leserlicher zu gestalten, kannst du With verwenden.

    With Sheets("Tabelle1").Range("XY")
      .Value = "Neuer Wert"
      MsgBox .Value
    End With
  • Überprüfen von Fehlern: Verwende On Error Resume Next, um Fehler beim Zugriff auf benannte Bereiche zu handhaben.


FAQ: Häufige Fragen

1. Kann ich benannte Bereiche aus mehreren Tabellen in einem Namen definieren? Nein, ein benannter Bereich kann entweder auf ein spezifisches Tabellenblatt oder auf die gesamte Arbeitsmappe verweisen, aber nicht auf mehrere Tabellen gleichzeitig.

2. Wie kann ich alle benannten Bereiche in meiner Arbeitsmappe anzeigen? Du kannst alle benannten Bereiche in Excel über die Namensverwaltung anzeigen, indem du auf „Formeln“ > „Namensmanager“ gehst.

3. Was passiert, wenn das aktive Blatt nicht das Blatt mit der benannten Zelle ist? Wenn das aktive Blatt nicht das Blatt ist, auf das die benannte Zelle verweist, kann dies zu einem Fehler führen. Stelle sicher, dass du das richtige Blatt aktivierst, bevor du auf den benannten Bereich zugreifst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige