Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Alle Blattnamen auflisten

Alle Blattnamen auflisten
09.11.2005 08:16:12
Klaus
Guten Morgen zusammen
Ich möchte in Tabelle1 ab H1 alle Blattnamen ab Sheet 3 einer Arbeitsmappe aufgelistet haben. Geht das mit einer Formel, oder mit VBA?
Gruss Klaus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
ohne VBA
09.11.2005 08:44:25
Mac4
Hallo Klaus,
definiere zuerst einen Namen.
Name in der Arbeitsmappe z.B. Name
unter "bezieht sich auf" =Arbeitsmappe.Zuordnen(1)
IN H1 folgende Formel und runterziehen:
=TEIL(INDEX(Name;ZEILE()+2);FINDEN("]";INDEX(Name;ZEILE()+2+1));99)
Marc
AW: Alle Blattnamen auflisten
09.11.2005 08:45:54
Erich
Hallo Klaus,
hier ein Muster wie ich das Inhaltsverzeichnis erstelle; kannst Du anpassen:
Option Explicit
Sub inhaltsverzeichnis_erstellen()
'Inhaltsverzeichnis aller Tabellenblätter
'im erten Tabellenblatt ab Zeile A1 einfügen
Dim Blatt As Object
Dim zeile As Double
Dim NewSheet As Worksheet
Dim i As Integer
zeile = 3
'Fehlerhandling
On Error Resume Next
'Abfrage unterdrücken
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'Sheet Inhaltsverzeichnis auf jeden Fall löschen
Sheets("Inhaltsverzeichnis").Delete
'Neues Tabellenblatt mit dem Namen Inhaltsverzeichnis hinzufügen
Set NewSheet = Worksheets.Add
NewSheet.Name = "Inhaltsverzeichnis"
Sheets("Inhaltsverzeichnis").Move before:=Sheets(1) ' = Tabellenblatt als erstes
'Überschrift Einfügen und formatieren
With Sheets("Inhaltsverzeichnis").Range("A1")
.Value = "Inhaltsverzeichnis"
.Font.Name = "Arial"
.Font.Size = "18"
.Font.Bold = True
.Font.ColorIndex = 6
.Interior.ColorIndex = 5
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
.Font.Underline = xlUnderlineStyleSingle
End With
With Cells(1, 2)
.Font.Name = "Arial"
.Font.Size = "18"
.Font.Bold = True
.Font.ColorIndex = 6
.Interior.ColorIndex = 5
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
End With
With Cells(1, 3)
.Font.Name = "Arial"
.Font.Size = "18"
.Font.Bold = True
.Font.ColorIndex = 6
.Interior.ColorIndex = 5
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
End With
With Cells(2, 1)
.Value = "sortiert nach Blatt-Nr."
.Font.Name = "Arial"
.Font.Size = "16"
.Font.Bold = True
.Font.Underline = xlUnderlineStyleSingle
End With
With Cells(2, 5)
.Value = "alphabetisch sortiert"
.Font.Name = "Arial"
.Font.Size = "16"
.Font.Bold = True
.Font.Underline = xlUnderlineStyleSingle
End With
'Laufende Blattnummerierung + Blattname einfügen
For Each Blatt In Sheets
Sheets("Inhaltsverzeichnis").Cells(zeile, 1).Value = "Blatt " & zeile - 2
Sheets("Inhaltsverzeichnis").Cells(zeile, 2).Value = Blatt.Name
Sheets("Inhaltsverzeichnis").Hyperlinks.Add Anchor:=Cells(zeile, 2), Address:="", SubAddress:="'" & _
Blatt.Name & "'!A1", TextToDisplay:=Blatt.Name
zeile = zeile + 1
Next Blatt
ActiveSheet.Columns("B:B").EntireColumn.AutoFit
'Kopiere die zwei erstellten Spalten und sortiere Hyperlinks
Range("A3", Range("B65536").End(xlUp)).Select
Selection.Copy
Range("D3").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("D3", Range("E65536").End(xlUp)).Select
Selection.Sort Key1:=Range("E3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ActiveSheet.Columns("D:E").EntireColumn.AutoFit
ActiveWindow.DisplayGridlines = False
Range("A3").Select
ActiveWindow.FreezePanes = True
Cells(1, 4).Value = "Diese Datei hat " & Worksheets.Count & " Tabellen"
'Userform ausblenden
'frmInhaltsverz.Hide
'Ursprungszustand wieder herstellen
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

mfg
Erich
EXCEL-Shareware und Freeware: http://www.toolex.de
Private Tippgemeinschaft für Lotto oder KENO: http://www.kenostrategen.de
Anzeige
AW: Alle Blattnamen auflisten
09.11.2005 08:51:37
Harald
Moin Klaus,
oder ein kleiner 5-zeiler ins Blattmodul von Blatt 1
Private Sub Worksheet_Activate() dim x as double, i as double x = 1 For i = 3 To Sheets.Count Cells(x, 8) = Sheets(i).Name x = x + 1 Next i End Sub
Gruss Harald
AW: Alle Blattnamen auflisten
09.11.2005 09:15:11
Korl
Hallo Harald,
ich finde Deinen Code interessant. Läßt sich die Anzeige der Blattnamen auch in eine
MsgBox einbinden?
Gruß Korl
Anzeige
AW: Alle Blattnamen auflisten
09.11.2005 09:17:25
Klaus
Hallo zusammen
Vielen Dank für die Hilfe, werde mir das beste raussuchen
Gruss Klaus
AW: Alle Blattnamen auflisten
09.11.2005 09:24:20
Harald
Moin Korl,
ist lediglich vba-Hausmannskost. Der Code scheitert, wenn z.B Blätter verschoben werden.

Sub blattname()
For i = 2 To Sheets.Count
MsgBox Sheets(i).Name
Next i
End Sub

Gruss Harald
Anzeige
AW: Alle Blattnamen auflisten
09.11.2005 11:10:33
Korl
Hallo Harald,
hab Dank für Deine Unterstützung, es funktioniert.
Übrigens, ich benutze es auch nur als Hausmannskost ;-)
Gruß Korl
Danke für die Rückmeldung ;-)) owT
09.11.2005 11:13:20
Harald
Gruss Harald
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Blattnamen in Excel auflisten


Schritt-für-Schritt-Anleitung

Um alle Blattnamen in Excel aufzulisten, kannst du entweder eine Formel oder VBA verwenden. Hier sind die Schritte für beide Methoden:

Mit einer Formel:

  1. Definiere einen Namen für die Arbeitsmappe:

    • Gehe zu "Formeln" > "Namensmanager" > "Neu".
    • Gib als Namen „Name“ ein.
    • Bei „Bezieht sich auf“ verwende die Formel: =Arbeitsmappe.Zuordnen(1).
  2. In Zelle H1 (oder deiner gewünschten Startzelle) trage folgende Formel ein und ziehe sie nach unten:

    =TEIL(INDEX(Name;ZEILE()+2);FINDEN("]";INDEX(Name;ZEILE()+2+1));99)

Mit VBA:

  1. Öffne den VBA-Editor (Alt + F11).
  2. Füge ein neues Modul hinzu (Einfügen > Modul).
  3. Kopiere den folgenden Code und füge ihn ein:
    Sub blattnamen_auflisten()
       Dim zeile As Integer
       zeile = 1
       For i = 1 To ThisWorkbook.Sheets.Count
           Cells(zeile, 1).Value = ThisWorkbook.Sheets(i).Name
           zeile = zeile + 1
       Next i
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus.

Häufige Fehler und Lösungen

  • Fehler: „#NAME?“ in der Formel.

    • Lösung: Überprüfe, ob der definierte Name korrekt ist und dass du die Formel richtig eingegeben hast.
  • Fehler: Das VBA-Skript funktioniert nicht.

    • Lösung: Stelle sicher, dass du das Makro in der richtigen Arbeitsmappe ausführst und dass die Sicherheitsstufe für Makros es erlaubt, sie auszuführen.

Alternative Methoden

Wenn du keine VBA-Programmierung verwenden möchtest, gibt es auch alternative Ansätze:

  • Excel 365: Du kannst die Funktion =TEXTKETTE() verwenden, um die Namen der Blätter dynamisch aufzulisten.
  • Manuelle Auflistung: Du kannst die Blattnamen auch einfach manuell in eine Liste eingeben, wenn du nur wenige Blätter hast.

Praktische Beispiele

Hier sind einige Beispiele, wie du die Methoden anwenden kannst:

  • Um alle Blattnamen in einer neuen Tabelle zu listen, kannst du das VBA-Skript anpassen, um die Namen in einem bestimmten Blatt zu speichern:

    Sub blattnamen_auflisten()
       Dim zeile As Integer
       zeile = 1
       For i = 1 To ThisWorkbook.Sheets.Count
           Sheets("Inhaltsverzeichnis").Cells(zeile, 1).Value = ThisWorkbook.Sheets(i).Name
           zeile = zeile + 1
       Next i
    End Sub
  • Verwende die Formel in verschiedenen Zellen, um die Namen nach bestimmten Kriterien zu sortieren oder zu filtern.


Tipps für Profis

  • Nutze die Möglichkeit, die Blattnamen mit Hyperlinks zu versehen, um direkt zu den jeweiligen Blättern zu navigieren.
  • Experimentiere mit der Sortierung der Blattnamen, um sie alphabetisch oder nach Reihenfolge anzuzeigen.
  • Bei umfangreichen Arbeitsmappen kann es hilfreich sein, die Blätter thematisch zu gruppieren.

FAQ: Häufige Fragen

1. Kann ich die Namen der Tabellenblätter auch ohne VBA auflisten? Ja, du kannst die Namen der Tabellenblätter mit einer Formel auflisten, indem du die oben genannten Schritte befolgst.

2. Wie kann ich die Namen aller Tabellenblätter in einer bestimmten Reihenfolge sortieren? Nachdem du die Blattnamen aufgelistet hast, kannst du die Excel-Sortierfunktion verwenden, um die Liste nach deinen Wünschen zu ordnen.

3. Funktioniert dies in allen Excel-Versionen? Die Formel funktioniert in den meisten Versionen von Excel, während die VBA-Methoden in Excel 2007 und neueren Versionen am besten funktionieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige