Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

makro zum benennen von tabellenblättern





Frage

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 1 von Saarbauer

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

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

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

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

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

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

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