Supportnet / Forum / Tabellenkalkulation
Tabellenblattnamen in Zelle einfügen
Frage
Hallo!
Ich habe gleich zwei Fragen zu den Tabellenblattnamen:
Ich möchte in die Zelle A7 den aktuellen Tabellenblattnamen eintragen.
Dazu habe ich die Formel =RECHTS(ZELLE("Dateiname";A7);LÄNGE(ZELLE("Dateiname";A7))-FINDEN("]";ZELLE("Dateiname";A7);1)) ausgebrütet, die tatsächlich zu funktionieren scheint. Aber wahrscheinlich denke ich mal wieder viel zu kompliziert! Weiß jemand einen einfacheren Weg, eine Funktion oder ein Makro vielleicht?
Bestimmt kennt jemand auch eine Methode, in einer Tabelle sämtliche Blattnamen der Mappe aufzulisten?
Vielen Dank schon mal im Voraus!!
Gorinth
Antwort 1 von haribo8071
Gibt doch einfach in die betreffende Zelle
=ZELLE("dateiname") ein.
=ZELLE("dateiname") ein.
Antwort 2 von Gorinth
Hallo haribo8071,
danke für Deine Antwort!
=ZELLE("Dateiname") habe ich bereits probiert. Aber dann bekomme ich als Ergebnis - zumindest unter Excel 2002 - den kompletten Pfad. Es soll aber nur der Tabellenblattname sein.
Mit den o.g. Verrenkungen lässt sich der zwar "herausholen", aber das muss doch irgendwie einfacher gehen...
Schönen Gruß,
Gorinth
danke für Deine Antwort!
=ZELLE("Dateiname") habe ich bereits probiert. Aber dann bekomme ich als Ergebnis - zumindest unter Excel 2002 - den kompletten Pfad. Es soll aber nur der Tabellenblattname sein.
Mit den o.g. Verrenkungen lässt sich der zwar "herausholen", aber das muss doch irgendwie einfacher gehen...
Schönen Gruß,
Gorinth
Antwort 3 von schnallgonz
N´abend,
Hallo Gorinth,
mein Vorschlag schreibt Dir den jeweiligen Blattnamen bei jedem Blattaktivieren in A7.
Damit wird bei jedem Blattwechsel "A7" angesprungen.
Wenn Dich das nicht stört, probiers mal aus.
Du musst den Code als Ereignis Deiner Mappe zuordnen:
mit ALT+F11 Wechsel in die VBA Umgebung, dort
Doppelklick auf Deine Arbeitmappe im linken Fenster
und dann im rechten Fenster obigen Code einfügen.
Alle Blattnamen listet folgender Code:
Als einfaches Makro anlegen und vielleicht einer Schaltfläche zuordnen oder einem Icon in der Symbolleiste.
Bei Makroausführung werden alle Blattnamen in die Zellen A1 , A2 usw geschrieben und zwar in dem Blatt, welches gerade aktiv ist.
Damit Du nicht versehentlich Daten in A1 ff überschreibst, fragt vor Ausführung eine MsgBox nochmal nach..
MfG
schnallgonz
Hallo Gorinth,
mein Vorschlag schreibt Dir den jeweiligen Blattnamen bei jedem Blattaktivieren in A7.
Damit wird bei jedem Blattwechsel "A7" angesprungen.
Wenn Dich das nicht stört, probiers mal aus.
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Range("A7").Activate
ActiveCell = ActiveSheet.Name
End SubDu musst den Code als Ereignis Deiner Mappe zuordnen:
mit ALT+F11 Wechsel in die VBA Umgebung, dort
Doppelklick auf Deine Arbeitmappe im linken Fenster
und dann im rechten Fenster obigen Code einfügen.
Alle Blattnamen listet folgender Code:
Sub BlattNamenListen()
Dim Blatt As Worksheet
Dim i As Integer
´Abfrage, ob geschrieben werden soll, falls Daten in A1 ff
i = MsgBox("Alle Blattnamen in dieses Blatt ab Zelle A1 schreiben. Bist Du sicher?", _
1 + vbQuestion, "Sicherheitsabfrage")
If i = 2 Then Exit Sub
Range("A1").Select
´Blattname listen
For Each Blatt In ActiveWorkbook.Sheets
ActiveCell.Value = Blatt.Name
ActiveCell.Offset(1, 0).Select
Next Blatt
End Sub
Als einfaches Makro anlegen und vielleicht einer Schaltfläche zuordnen oder einem Icon in der Symbolleiste.
Bei Makroausführung werden alle Blattnamen in die Zellen A1 , A2 usw geschrieben und zwar in dem Blatt, welches gerade aktiv ist.
Damit Du nicht versehentlich Daten in A1 ff überschreibst, fragt vor Ausführung eine MsgBox nochmal nach..
MfG
schnallgonz
Antwort 4 von schnallgonz
Nachtrag zum 2. Listing
Ich habe nicht 100% auf die Formatierung im Forum geachtet.
Wenn Du den Code kopierst, achte darauf, dass der Unterstrich "_" am Zeilenende steht und die Kommentare mit einem Hochkomma ´ beginnen.
MfG
schnallgonz
Ich habe nicht 100% auf die Formatierung im Forum geachtet.
Wenn Du den Code kopierst, achte darauf, dass der Unterstrich "_" am Zeilenende steht und die Kommentare mit einem Hochkomma ´ beginnen.
MfG
schnallgonz
Antwort 5 von want2cu
Hallo,
m.E: geht das eben nicht einfacher. Für alle anderen Varianten habe ich hier nochmal alle mir bekannten Formeln gepostet.
kompletter Dateipfad bis zum Arbeitsblatt
=ZELLE("dateiname";$A$2)
Dateipfad bis zum Dateinamen ohne die [eckigen Klammern]
=WECHSELN(LINKS(ZELLE("Dateiname";A2);-1+FINDEN("]";ZELLE("Dateiname";A2)));"[";"")
Nur Verzeichnispfad
=LINKS(ZELLE("Dateiname";A2);FINDEN("[";ZELLE("Dateiname";A2))-2)
Name der Datei
=TEIL(ZELLE("Dateiname";A2);FINDEN("[";ZELLE("Dateiname";A2))+1;FINDEN("]";ZELLE("Dateiname";A2))-FINDEN("[";ZELLE("Dateiname";A2))-1)
Name des Arbeitsblattes
=TEIL(ZELLE("Dateiname";A2);FINDEN("]";ZELLE("Dateiname";A2))+1;31)
CU
want2cu
m.E: geht das eben nicht einfacher. Für alle anderen Varianten habe ich hier nochmal alle mir bekannten Formeln gepostet.
kompletter Dateipfad bis zum Arbeitsblatt
=ZELLE("dateiname";$A$2)
Dateipfad bis zum Dateinamen ohne die [eckigen Klammern]
=WECHSELN(LINKS(ZELLE("Dateiname";A2);-1+FINDEN("]";ZELLE("Dateiname";A2)));"[";"")
Nur Verzeichnispfad
=LINKS(ZELLE("Dateiname";A2);FINDEN("[";ZELLE("Dateiname";A2))-2)
Name der Datei
=TEIL(ZELLE("Dateiname";A2);FINDEN("[";ZELLE("Dateiname";A2))+1;FINDEN("]";ZELLE("Dateiname";A2))-FINDEN("[";ZELLE("Dateiname";A2))-1)
Name des Arbeitsblattes
=TEIL(ZELLE("Dateiname";A2);FINDEN("]";ZELLE("Dateiname";A2))+1;31)
CU
want2cu
Antwort 6 von Gorinth
Hallo schnallgonz,
Deine Makros habe ich gleich ausprobiert, genau das, was ich brauchen kann! Danke!!
Hallo want2cu,
na, und ich dachte, meine Formel wäre schon lang! Persönlich habe ja nichts gegen lange Formeln. Im Gegenteil, ich finde, ein paar Verschachtelungen entwickeln eine ganz eigene Ästhetik... Vielen Dank auch an Dich!!
Schönen Gruß,
Gorinth
Deine Makros habe ich gleich ausprobiert, genau das, was ich brauchen kann! Danke!!
Hallo want2cu,
na, und ich dachte, meine Formel wäre schon lang! Persönlich habe ja nichts gegen lange Formeln. Im Gegenteil, ich finde, ein paar Verschachtelungen entwickeln eine ganz eigene Ästhetik... Vielen Dank auch an Dich!!
Schönen Gruß,
Gorinth

