Clever-Excel-Forum

Normale Version: VBA auf Namensmanager zugreifen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich habe im Nemensmanager einen Bereich einer Tabelle mit dem Namen "_Beleuchtung" angelegt.
Der Bereich ist für die gesamte Arbeitsmappe freigegen.

Nun habe ich folgendes versucht:

Code:
For Each tabHG In Range("_Beleuchtung")
  MsgBox tabHG
Next tabHG

aber das klappt nicht...
versuchs mal so

Code:
Sub bla()

For Each tabHG In Range("_Beleuchtung")
  MsgBox tabHG
Next tabHG
End Sub
danke für den Hinweis.

der von mir gepostete Code-Ausschnitt steht in einem Sub.

Mein problem ist, das Excel nicht auf die im Namensmanager definierte Tabelle zugreift und ich nicht ganz verstehe warum.

Edit:

hier die Lösung (hoffe ich)

Code:
For Each tabHG In Worksheets(5).Range("_Beleuchtung")
Hallo s...,

wenn du über Namen anstelle von festen Adressen auf Bereiche zugreifst, brauchst du das Programm nicht verändern wenn du Zeilen oder Spalten vor den Bereichen einfügst oder löschst.

In den meisten Fällen kann man auch über "Names" anstelle über "Range" auf den Bereich zugreifen.
'ThisWorkbook.Names("_Beleuchtung").RefersToRange' ist zwar etwas mehr Schreibarbeit als 'Range("_Beleuchtung")' aber das Programm muss das Blatt nicht kennen und man kann die Bereiche auch in andere Blätter verschieben ohne das Programm ändern zu müssen.
Named Range "snb"

Code:
Sub M_snb()
  MsgBox [snb].Name
  MsgBox [snb].Parent.Name
   For Each it In [snb]
      MsgBox it
   Next
End Sub