Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1108to1112
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem mit Dynamische Namen im Makro

Problem mit Dynamische Namen im Makro
Daniel
Hallo
ich habe folgendes Problem:
ich möchte per Makro auf einen dynamischen Namen (Zellbezug, der mit Bereich.Verschieben definiert ist) zugreifen.
da mehrere Dateien im Spiel sind, muss vollständig referenziert werden.
bisher sind mir folgende Möglichkeiten bekannt:
1. Workbooks("xy").Sheets("abc").Range("MeinName").Copy
dies funktioniert, allerdings muss hierfür das Sheet bekannt sein, auf das sich der Name bezieht, dies ist aber nicht der Fall, daher müsste ich folgendes verwenden:
2. Workbooks("xy").Names("MeinName").RefersToRange.Copy
dies funktioniert allerdings nur, wenn der Name mit einem festen Zellbezug definiert ist.
ist der Name hingegen berechnet, dann verursacht diese Methode einen Fehler.
Daher meine Frage: Wie kann ich in VBA einen Namen mit berechnetem Zellbezug verwenden, wenn das Sheet, auf das er sich bezieht NICHT bekannt ist?
hier mal ein Beispiel zur Verdeutlichung:
https://www.herber.de/bbs/user/65071.xls
Gruß, Daniel

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Evaluate(Names("...").RefersTo)
13.10.2009 23:02:18
Erich
Hi Daniel,
probier mal

MsgBox Evaluate(wb.Names("BerechneterBezug").RefersTo).Parent.Name
Evaluate(wb.Names("BerechneterBezug").RefersTo).Copy
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
AW: Evaluate(Names("...").RefersTo) geht nicht
13.10.2009 23:17:50
Daniel
Hi Erich
danke für den Tip, leider funktioniert Evaluate nur dann, wenn die entsprechende Datei (wb) aktiv ist.
das kann ich aber nicht garantieren, da mit mehrern Dateien gearbeitet wird.
Gruß, Daniel
AW: Problem mit Dynamische Namen im Makro
14.10.2009 00:06:56
Gerd
'n Abend!
Sub ttt()
Dim wb As Workbook, ws As Worksheet
Set wb = Workbooks("65071.xls")
Set ws = wb.Worksheets(Split(Split(wb.Names("BerechneterBezug").RefersTo, "(")(1), "!")(0))
MsgBox ws.Name
End Sub
Gruß Gerd
Anzeige
AW: Problem mit Dynamische Namen im Makro
14.10.2009 00:38:07
Daniel
Hi
Danke,das ist ein interessanter Workaround, der aber nur funktioniert, wenn in der Formel das entsprechende Tabellenblatt direkt hinter der ersten Klammer steht. Das dürfte in den meisten Fällen zwar so sein, aber es kann Ausnahmen geben.
Gruß, Daniel
AW: Problem mit Dynamische Namen im Makro
14.10.2009 09:56:55
Luschi
Hallo Daniel,
ich lege in solchen Fällen noch einen 2. Namen an:

BerechneterBezug   -> =BEREICH.VERSCHIEBEN(Tabelle1!$A$1;;;ANZAHL2(Tabelle1!$A:$A);1)
BerechneterBezug_1 -> =BerechneterBezug
und verwende dann in Vba den 2. Namen.
Gruß von Luschi
aus klein-Paris
AW: klappt
15.10.2009 00:26:21
Daniel
Hi
cool, das funktioniert.
wobei sich mir der Sinn nicht so ganz erschließt, warum das mit dem berechneten Bezug nicht geht, dafür aber mit dem Bezug, der sich auf den Berechnenten bezieht, das ist irgendwie schon seltsam.
Gruß, Daniel
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige