mit dem folgenden code wird die kopfzeile auf allen blättern ausgetauscht. ich möchte aber, dass dies nur bei dem gerade aktiven blatt geschehen soll. über eine for/next schleife würde ich mir dann alle blätter ändern lassen.
die anweisung oAktivesBlatt und StylesFamilies verträgt sich nicht.
der code, der über thisComponent.StylesFamilies die kopfzeile von allen blättern ändert lautet:
Sub KopfzeileDefinieren
Dim calcDoc as Object, oAktivesBlatt as Object
Dim oFormatFamilien as Object, oSeitenFormate as Object
Dim oSeitenFormat as Object, oKopfZeile as Object
Dim oTextLi as Object, oTextMi as Object, oTextRe as Object
calcDoc = ThisComponent
oAktivesBlatt = calcDoc.CurrentController.activeSheet
oFormatFamilien = calcDoc.StyleFamilies()
oSeitenFormate = oFormatFamilien.getByName("PageStyles")
oSeitenFormat = oSeitenFormate.getByName("Standard")
oSeitenFormat.HeaderIsOn = true
oSeitenFormat.HeaderIsShared = true
oKopfZeile = oSeitenFormat.RightPageHeaderContent
oTextLi = oKopfZeile.LeftText
oTextMi = oKopfZeile.CenterText
oTextRe = oKopfZeile.RightText
oTextLi.setString("K. König")
oTextMi.setString("Steuererklärung 2004")
oTextRe.setString("St.Nr. 115/xxx/xxx")
oSeitenFormat.RightPageHeaderContent = oKopfzeile
End Sub
mit dem folgenden code wird die kopfzeile auf allen blättern ausgetauscht.
Nein.
Der folgende Code tauscht/erstellt nur eine Kopfzeile für die Tabellen denen die Seitenvorlage "Standard" zugewiesen ist.
ich möchte aber, dass dies nur bei dem gerade aktiven blatt geschehen soll.
Dann mußt Du dieser Tabelle eine eigene Seitenvorlage zuweisen und dort die Kopfzeile entsprechend gestalten.
Also im Wesentlichen:
*neue Seitenvorlage erstellen:
das mit der seitenvorlage erstellen und dem zuweisen klappt nun auch auf das gerade aktive blatt. beim zweiten anwenden auf ein anderes aktives blatt kommt eine fehlermeldung die da lautet:
Basic Laufzeitfehler
Es ist eine exception aufgetreten
Type:com.sun.star.container.ElementExistException
kann vor dem erzeugen prüfen, ob die seitenvorlage schon besteht und diese dann löschen?
if calcDoc.getStyleFamilies().getByName("PageStyles").hasbyname("Kopf1")=true then
calcDoc.getStyleFamilies().getByName( "PageStyle).removeByName("Kopf1")
else
'--weiterer code