Seite 1 von 1

Mehrere Tabellen nach Einträgen in einer Spalte umbenennen

Verfasst: Di, 09.07.2019 19:30
von Bommel
Hallo,
ich habe 11 Tabellen in einem Dokument und würde diese gern automatisch umbenennen.
In Tabelle 1 sollen in Spalte A im Bereich A1:A10 die Namen der Tabellen 2 bis 11 stehen.
Die Tabellen 2 bis 11 sollen dann nach Tabelle 1 A1:A10 umbenannt werden.

In einem anderen Forum habe ich ein Makro gefunden, das die Tabellen einfach durchnummeriert.
Vielleicht kann man das als Ausgangsbasis nutzen:

Code: Alles auswählen

Sub RenameSheets
Sheets = ThisComponent.Sheets
Count = Sheets.Count
for i = 0 to Count - 1
   Sheet = Sheets.getByIndex(i)
   Sheet.Name = CStr(i + 1)
next i
End Sub
Freundliche Grüße

Re: Mehrere Tabellen nach Einträgen in einer Spalte umbenennen

Verfasst: Mi, 10.07.2019 05:05
von Stephan
Wenn Tabelle 1, die Tabelle mit Index 0 ist, also die ganz Linke, z.B.:

Code: Alles auswählen

Sub Main
	tc = ThisComponent
	For i = 1 To 11
		tc.Sheets(i).Name = tc.Sheets(0).getCellByPosition(0, i-1).String
	Next i
End Sub
Gruß
Stephan

Re: Mehrere Tabellen nach Einträgen in einer Spalte umbenennen

Verfasst: Mi, 10.07.2019 18:13
von Bommel
Hallo Stephan,

das funktioniert einwandfrei.

Allerdings habe ich die 11 in 10 geändert.
Ansonsten kommt immer die Fehlermeldung:

"Unzulässiger Wert oder Datentyp.
Index außerhalb des definierten Bereichs."

Gleichzeitig geht das Bearbeitungsfenster für die Makros auf und die Zeile

Code: Alles auswählen

"tc.Sheets(i).Name = tc.Sheets(0).getCellByPosition(0, i-1).String"
wird hervorgehoben angezeigt.

Ich möchte ja auch nur die letzen 10 Tabellen (rechts) umbenennen
und nicht, wie ich fälschlicherweise geschrieben habe, 11.
Tabelle1 (ganz links) sollte unangetastet bleiben.

Vielen Dank!