Mehrere Tabellen nach Einträgen in einer Spalte umbenennen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Bommel
**
Beiträge: 40
Registriert: Di, 01.12.2009 18:12

Mehrere Tabellen nach Einträgen in einer Spalte umbenennen

Beitrag 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
Zuletzt geändert von Bommel am Mi, 10.07.2019 01:16, insgesamt 3-mal geändert.
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

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

Beitrag 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
Bommel
**
Beiträge: 40
Registriert: Di, 01.12.2009 18:12

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

Beitrag 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!
Antworten