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

Tabellenblatname in Zelle eintragen

Tabellenblatname in Zelle eintragen
obelix-xxl
Hallo,
ich bitte um Unterstützung bei folgendem Problem.
Ich suche ein Makro mit dem ich die bereits vorhandenen Tabellenblattnamen einer Vielzahl von Tabellen einer Arbeitsmappe in die Zelle C 8 eintragen kann.
Über eure Unterstützung würde ich mich sehr freuen.
obelix
AW: Tabellenblatname in Zelle eintragen
17.01.2012 10:39:42
Reinhard
Hallo Obelix,
Sub tt()
Dim Liste As String, L As Integer
For L = 1 To ThisWorkbook.Worksheets.Count
Liste = Liste & ThisWorkbook.Worksheets(L).Name & ","
Next L
Range("C8").Value = Left(Liste, Len(Liste) - 1)
End Sub

Gruß
Reinhard
AW: Tabellenblatname in Zelle eintragen
17.01.2012 10:54:43
obelix-xxl
Hallo Reinhard,
danke für die Unterstützung.
Leider habe ich das Problem nicht sauber umschrieben?
Mit deiner Lösung werden ALLE Tabellenblattnamen der gesamten Arbeitsmappe in eine Zelle geschrieben.
Ich möchte jedoch den Tabellenblattnamen eines jeden Tabellenblattes im dazugehörigen Tabellenblatt in Zelle C8 automatisch eintragen lassen.
Kannst du mal bitte dahingehend eine Lösung aufzeigen?
Danke.
obelix
Anzeige
AW: Tabellenblatname in Zelle eintragen
17.01.2012 11:05:49
Josef_T
Hallo Obelix,
meints Du soetwas?
=TEIL(ZELLE("Dateiname";A1);FINDEN("]";ZELLE("Dateiname";A1))+1;255)
Gruß
Josef
AW: Tabellenblatname in Zelle eintragen
17.01.2012 11:17:17
obelix-xxl
Hallo Josef,
deine Formel habe ich eingetragen.
In der Zelle wird dann #WERT! als Ergebnis dargestellt.
obelix
AW: Tabellenblatname in Zelle eintragen
17.01.2012 11:25:55
hary
Hallo
speicher mal die Mappe und mach sie wieder auf.
gruss hary
AW: Tabellenblatname in Zelle eintragen
17.01.2012 11:26:30
Reinhard
Hallo Obelix,
hast du das in einer ungespeicherten Mappe getestet?
zwei andere Lösungen, eine mit formel:
Sub tt()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
wks.Range("C8").Value = wks.Name
Next wks
End Sub
Sub tt2()
Dim wks As Worksheet, Formel As String
Formel = "=mid(GET.CELL(32),find(""]"",GET.CELL(32))+1,99)"
ThisWorkbook.Names.Add Name:="Blatt", RefersToR1C1:=Formel
For Each wks In ThisWorkbook.Worksheets
wks.Range("C8").Formula = "=Blatt"
Next wks
End Sub

Gruß
Reinhard
Anzeige
AW: Tabellenblatname in Zelle eintragen
17.01.2012 11:58:27
obelix-xxl
Hallo
Reinhard, Josef_T und hary.
toll, jetzt habe ich alle drei Lösungen ausprobiert und alle funktionieren.
Ich werde aber eine Makrolösung nutzen. Die Lösung mit der Formel finde ich für eine andere Anwendung prima und habe mir diese bereits zu den Makrolösungen notiert.
Vielen, vielen Dank für Eure Unterstützung.
obelix
AW: Tabellenblatname in Zelle eintragen
17.01.2012 12:08:50
obelix-xxl
Hallo,
da war ich wohl zu schnell mit den fertigen Makrolösungen.
Nach dem Ausführen der beiden Makros steht jetzt nur im ersten Tabellenblatt der richtige Name eingetragen.
Alle anderen Tabellenblätter haben jetzt auch den Tabellenblattnamen des ersten Tabellenblattes.
Diese Tabellenblätter, vom 2. bis letzten benötigen jedoch ihren eigenen Namen.
Könnt ihr mir bitte hierfür eine Lösung aufzeigen?
obelix
Anzeige
AW: Tabellenblatname in Zelle eintragen
17.01.2012 12:10:00
obelix-xxl
Hallo,
da war ich wohl zu schnell mit den fertigen Makrolösungen.
Nach dem Ausführen der beiden Makros steht jetzt nur im ersten Tabellenblatt der richtige Name eingetragen.
Alle anderen Tabellenblätter haben jetzt auch den Tabellenblattnamen des ersten Tabellenblattes.
Diese Tabellenblätter, vom 2. bis letzten benötigen jedoch ihren eigenen Namen.
Könnt ihr mir bitte hierfür eine Lösung aufzeigen?
obelix
kann nicht sein, zeig dein Makro ! ow
17.01.2012 12:15:36
robert
AW: kann nicht sein, zeig dein Makro ! ow
17.01.2012 12:25:22
obelix-xxl
Hallo robert,
hier die beiden Makros (siehe auch oben).
Sub tt()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Worksheets
wks.Range("C8").Value = wks.Name
Next wks
End Sub

eine weitere Lösung:
Sub tt2()
Dim wks As Worksheet, Formel As String
Formel = "=mid(GET.CELL(32),find(""]"",GET.CELL(32))+1,99)"
ThisWorkbook.Names.Add Name:="Blatt", RefersToR1C1:=Formel
For Each wks In ThisWorkbook.Worksheets
wks.Range("C8").Formula = "=Blatt"
Next wks
End Sub
obelix
Anzeige
vergiss die zweite Lösung...
17.01.2012 12:34:19
robert
Hi,
die erste funktioniert und ist einfacher ;-)
Gruß
robert
AW: vergiss die zweite Lösung...
17.01.2012 13:07:55
obelix-xxl
Hallo robert,
danke für deine Mühe.
ja, die erste Lösung funktioniert einwandfrei.
obelix
Der Dank gebührt Reinhard ;-)) owT
17.01.2012 13:27:16
robert
AW: Der Dank gebührt Reinhard ;-)) owT
17.01.2012 13:47:23
obelix-xxl
Hallo Robert,
die erste Antwort ist meist die Beste. So wie im wahren Leben.
D A N K E.
obelix

347 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige