2.2k Aufrufe
Gefragt in Tabellenkalkulation von m-o-m Mitglied (499 Punkte)
Hallo Excelisten,

wie kann ich unter Excel 2003 die Bezeichnungen aller Register auslesen? Ob in einer neuen Datei, oder in einem neuen Register oder ab der aktuell aktivierten Zelle ist egal.

Gruß und schonmal vorab DANKE.

Maik

4 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Maik,

folgender Code schreibt dir die Namen der in der aktuellen Arbeitsmappe vorhandenen Tabellenblätter in das aktivierte Arbeitsblatt ab Zeile 1:

Sub Tabellenblaetter_auslesen()

Dim az As Integer

For az = 1 To ActiveWorkbook.Worksheets.Count
Cells(az, 1) = ThisWorkbook.Worksheets(az).Name
Next az

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Hallo Maik,

hier mal eine Lösung ohne VBA, die mal in einem Forum Stand

Hi Holger,

hatte diese Frage auch grad in einem anderen Forum (anderer Fragesteller) so beantwortet:
Einfügen -> Namen -> Definieren/Festlegen, Name: x
bezieht sich auf:
=ARBEITSMAPPE.ZUORDNEN(1+0*JETZT())
In irgendeine Zelle jetzt diese Formel und runterkopieren:
=WENN(ZEILEN($1:1)>VERGLEICH("";x;-1);"";TEIL(INDEX(x;ZEILEN($1:1));FINDEN("]";INDEX(x;ZEILEN($1:1)))+1;31))

Grüße Boris


Gruß Hajo
0 Punkte
Beantwortet von m-o-m Mitglied (499 Punkte)
Hallo M.O. und Hajo,

besten Dank für die Bearbeitung meiner Frage.

Das kleine Makro ist exakt das, was ich brauche.

Danke

Maik
0 Punkte
Beantwortet von m-o-m Mitglied (499 Punkte)
Moinsen,

ich bins nochmal.

Irgendwie klappt das Makro nur bei den Standards (Tabelle 1, 2, 3).

Ansonsten kommt der Fehler 'Index außerhalb des gültigen Bereichs'

markiert wird diese Zeile:
Cells(az, 1) = ThisWorkbook.Worksheets(az).Name


Aber die Formeln von Hajo funzen. Insofern gebühren die Lorbeeren eigentlich Hajo.

Danke nochmals

Maik
...