Anzeige
Archiv - Navigation
864to868
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
864to868
864to868
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

dynamischer Bereich

dynamischer Bereich
23.04.2007 09:10:52
Ralf
Hallo,
ich habe mit Zeitachse =BEREICH.VERSCHIEBEN(Tabelle1!$A$1;;;ANZAHL2(Tabelle1!$A:$A))
einen dynamischen Bereich definiert.
Wie kann ich denn jetzt mit VBA auf diesen Bereich zugreifen?
for each cell in Zeitachse.......
next cell
Bei statischen Bereichen geht es ja.
z.B. Range("Bereich").Select
Gruß Ralf

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: dynamischer Bereich
23.04.2007 09:23:11
Erich
Hallo Ralf,
For Each cell in Range("Zeitachse")
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: dynamischer Bereich
23.04.2007 09:32:59
Ralf
Hallo Erich,
bei statischen Bereichen funktioniert das, bei dem dynamischen leider nicht.
Gruß Ralf

AW: dynamischer Bereich
23.04.2007 09:32:00
Luschi
Hallo Ralf,
genau das gleiche Problem hatte ich vor wenigen Tagen, da Excel den folgenden Vba-Befehl nicht kappiert, wenn im definierten Namen die Funktion Bereich.Verschieben(...) vorhanden ist:
Set rg = ThisWorkbook.Names("Zeitachse").RefersToRange
Deshalb lege noch einen 2. Namen (Zeitachse_X) an mit der Beziehung: =Zeitachse
Dann klapt folgender Vba-Code:

Dim rg1 As Range, rg2 As Range
'die nächste Vba-Zeile kann Excel nicht auflösen
'Set rg1 = ThisWorkbook.Names("Zeitachse").RefersToRange
'deshalb so:
Set rg1 = ThisWorkbook.Names("Zeitachse_X").RefersToRange
For Each rg2 In rg1
'tue etwas
Next rg2
Set rg1 = Nothing
Set rg2 = Nothing

Gruß von Luschi
aus klein-Paris

Anzeige
AW: dynamischer Bereich
23.04.2007 10:00:00
Erich
Hallo Ralf und Luschi,
damit muss man sich in der Mappe nicht um den "Hilfsnamen" kümmern:

Sub tst()
Dim rng As Range
On Error Resume Next
ActiveWorkbook.Names("TempXYZ").Delete
On Error GoTo 0
ActiveWorkbook.Names.Add Name:="TempXYZ", RefersTo:="=Zeitachse"
For Each rng In ThisWorkbook.Names("TempXYZ").RefersToRange
MsgBox rng
Next rng
On Error Resume Next
ActiveWorkbook.Names("TempXYZ").Delete
On Error GoTo 0
Set rng = Nothing
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: dynamischer Bereich kürzer
23.04.2007 10:14:48
Erich
Hallo Ralf und Luschi,
das reicht auch aus:

Sub tst()
Dim rng As Range
On Error Resume Next
ActiveWorkbook.Names("TempXYZ").Delete
On Error GoTo 0
ActiveWorkbook.Names.Add Name:="TempXYZ", RefersTo:="=Zeitachse"
For Each rng In ThisWorkbook.Names("TempXYZ").RefersToRange
MsgBox rng
Next rng
ActiveWorkbook.Names("TempXYZ").Delete
Set rng = Nothing
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: dynamischer Bereich kürzer
23.04.2007 10:32:14
Luschi
Hallo Erich,
danke für den Tipp. Eigentlich habe ich es auch immer so gemacht wie in Deinem 1. Beitrag.
Set rg = Range("myName") oder
set rg = [myName]
Aber irgendwann brachte mir Excel2K den Fehler 1004 bei dieser Definitionsweise.
So bin ich auf
Set rg = ThisWorkbook.Names("myName").RefersToRange
umgestiegen.
Als ich dann feststellte, daß bei Namen die Bereich.Verschieben-Funktion wird aufgelöst wird, kam ich auf die Idee mit der Namensneudefinition mit Bezug auf den eigentlichen Namen.
Das temporäre Anlegen ist natürlich auch eine gute Idee.
Gruß von Luschi
aus klein-Paris

Anzeige
Funktioniert - Besten Dank o.T.
23.04.2007 11:25:30
Ralf

AW: dynamischer Bereich kürzer
23.04.2007 13:10:00
Erich
Hallo Ralf und Luschi,
danke für Eure Rückmeldungen!
@Luschi:
Deine Lösung fand ich genial und habe sie gleich "gebunkert" - ich wäre nicht drauf gekommen.
(hatte ja nicht einmal das Problem richtig erkannt...)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige