Suche ein Makro welches mir alle Blattnamen (außer "Blatt1") in eine Tabelle in Blatt1 einträgt, kann mir jemand weiterhelfen?
Hätte gerne auf meinem "Blatt1" eine Auflistung aller Blätternamen der Exceldatei. Die Namen sollen untereinander ab Zelle D3 von "Blatt1" stehen. Zusätzlich soll in der nächsten Spalte E jeweils ein Zellenwert (Datum) von den Blättern stehen. Der Datumswert der Blätter steht in Zelle E9. Sprich am Ende soll mir das Makro eine Tabelle liefern in der Form:
Tabellenname Datum
Blatt 2 04.05.12
Blatt 3 02.02.10
... ....
Bin leider noch ein Anfänger bei VBA und hab dieses noch nicht Umsetzen können. Für mögliche Anregungen und Lösungen wäre ich sehr dankbar! Die Blätteranzahl variiert weshalb ein Makro von Nöten ist.
3 Antworten
1. anregung:
Sub test()
Set tab1 = ActiveWorkbook.Sheets(1)
first = True
For ix = 2 To ActiveWorkbook.Sheets.Count
tab1.Cells(ix + 1, "D").Value = ActiveWorkbook.Sheets(ix).Name
Next ix
End Sub
- Mit Alt+F11 VBA öffnen
- Menü Einfügen: (neues) Modul
- ggf im Fenster Eigenschaften benamsen (nicht zwingend notwendig)
- dieses Sub dort einfügen (unterhalb evtl vorhandener Einträge wie Option Explicit oder Option Base 1 (oder 0)):
Sub BlattNamenUntereinanderListen()
Dim Blatt
For Each Blatt In Worksheets()
ActiveCell.Value = Blatt.Name
ActiveCell.Offset(1, 0).Activate 'untereinander
Next
End Sub
Dieses Makro ist sehr kurz, läuft allerdings trotzdem bemerkenswert langsam
Da Du es in verschiedenen Spalten listen willst, heißt das µ natürlich BlattNamenNebeneinanderListen() und anstatt Offset(1, 0) muss es heissen .Offset(0, 1) - das ist alles!
Aber Achtung: das Makro überschreibt gnadenlos alle am Zielort bestehenden Einträge!
Hab mich verlesen,
also doch untereinander: D3 ff. Datumswert E9: (aber anscheinend nicht in Blatt1)
Formel in E3:
=D3&Text(indirekt(D3&"!E9");" TT.MM.JJ")
und runterziehen (E3 liefert natürlich einen Fehler, wenn/weil in Blatt1 kein Datum steht, vllt auch Blatt1! 00.00.00) Das Absolutzeichen für E$9 kann entfallen, da "!E9" ein Text ist, der beim Kopieren nicht verändert wird. Das Leerzeichen zwischen Blattname und Datum ist ein umgesetztewr Formatbefehl, den Du aber in der Formel ändern kannst. Oder als &" "& zwischen die beiden Teilglieder D3 und Text... schieben.
oben: natürlich nicht Dein Blatt1 löschen, sondern das zum Ausprobieren!
Halt (zu spät) erstes Glied löschen, brauchst du ja gar nich
Du kannst die Auflistung der Tabellenblätter mit der vorgefertigten Excel4-Makrofunktion ARBEITSMAPPE.ZUORDNEN (Google-Stichwort!) tun. Eine genaue Vorgehensweise findest du bei Google.
Die Ausgabe des zugehörigen Datümer kannst du dann mit der INDIREKT-Funktion hinbekommen.
am besten, Du probierst es erst mal in einem leeren Blatt aus!
Blatt 1 kannst Du ja wieder löschen!