makro zum benennen von tabellenblättern
Hallo zusammen!
ich bräuchte hilfe mit einer relativ großen datei.
angenommen in A1 steht jeweils ein Name. Gibt es dann eine Möglichkeit mittels Makro diesen Namen auch als Titel für das Tabellenblatt einzusetzen?
Wäre für tipps sehr dankbar!
Viele Grüße
Philipp
Antwort schreiben
Antwort 1 von Saarbauer vom 07.02.2020, 13:09 Options
hallo,
grundsätzlich ja, jedoch gibt es Einschränkungen bei den Zeichen, es sind nicht alle möglich.
Geht nach meinem Kenntnisstnad nur mit VBA
Gruß
Helmut
Antwort 2 von wundi123 vom 07.02.2020, 14:26 Options
Hallo,
und wie würde ich da wohl in VBA vorgehen? hat jemand schonmal etwas in die richtung geschrieben?
Viele Grüße
Philipp
Antwort 3 von Saarbauer vom 07.02.2020, 15:11 Options
Hallo,
versuch es mal hiermit
Sub Tabellennamen()
letztesBlatt = ActiveWorkbook.Sheets.Count
For i = 1 To letztesBlatt
Worksheets(i).Name = Worksheets(i).Cells(1, 1).Value
Next i
End Sub
Es dürfen keine doppelten Blattnamen vorkommen
Gruß
Helmut
Antwort 4 von gast123 vom 07.02.2020, 16:21 Options
hi all
eine abfrage ob vorhanden ist koennte so ausehen
true false abfrage
Public Function SheetExists(strName As String) As BooleanOn Error Resume NextSheetExists = Not Worksheets(strName) Is NothingEnd Function
um deklarierungen nicht zu vegessen koennte man das einsetzen
Option Explicit
gruss gast123
Antwort 5 von wundi123 vom 12.02.2020, 10:19 Options
Hallo ihr beiden,
sorry für die späte antwort. aber vielen dank für eure hilfe! funktioniert alles bestens =D
Gruß
Philipp
Antwort 6 von wundi123 vom 12.02.2020, 10:29 Options
ok ein problem kam jetzt doch noch dazu :-(
was ist wenn der text in Zelle A1 länger als die erlaubten 31?32? zeichen ist?
dann kommt ja nen laufzeitfehler...
lässt sich das irgendwie umgehen indem man dem makro sagt wenn zu lang dann cut bei 30 zeichen?
thx for help =)
gruß
Philipp
Antwort 7 von Saarbauer vom 12.02.2020, 18:33 Options
Hallo,
dann ändere das Makro so
Sub Tabellennamen()
letztesBlatt = ActiveWorkbook.Sheets.Count
For i = 1 To letztesBlatt
Worksheets(i).Name = Left(Worksheets(i).Cells(1, 1).Value, 30)
Next i
End Sub
Gruß
Helmut