Registriert seit: 18.06.2019
Version(en): 2013
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...
Registriert seit: 12.06.2020
Version(en): 2024, 365business
versuchs mal so
Code:
Sub bla()
For Each tabHG In Range("_Beleuchtung")
MsgBox tabHG
Next tabHG
End Sub
Registriert seit: 18.06.2019
Version(en): 2013
10.11.2023, 08:42
(Dieser Beitrag wurde zuletzt bearbeitet: 10.11.2023, 08:42 von sveni_lee.)
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")
Registriert seit: 21.06.2016
Version(en): 2021
10.11.2023, 10:00
(Dieser Beitrag wurde zuletzt bearbeitet: 10.11.2023, 10:02 von Ego.)
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.
helmut
Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.
Registriert seit: 29.09.2015
Version(en): 2030,5
10.11.2023, 12:20
(Dieser Beitrag wurde zuletzt bearbeitet: 10.11.2023, 12:22 von snb.)
Named Range "snb"
Code:
Sub M_snb()
MsgBox [snb].Name
MsgBox [snb].Parent.Name
For Each it In [snb]
MsgBox it
Next
End Sub