Wer schon mal einen Kaugummi aus seinen Kleidern entfernen musste, hat eine ungefähre Vorstellung davon wie ist, wenn ich aufstehe.
Wie gemein! Eine Kopfzeile in einem Tabellenblatt in Excel:
Ich fülle diese Kopfzeile in Excel mit VBA:
Dim strTitle As String
Dim strLocation As String
Dim strTarget As String
Dim strType As String
' -- die Variablen werden gefüllt:
strTitle = "Renes Titel"
strLocation = "Renes Ort"
strTarget = "Renes Ziel"
strType = "Renes Typ"
With ActiveSheet.PageSetup
' -- schreibe nur rein, falls der Text noch nicht drinsteht.
If InStr(1, .LeftHeader, "Title" & strTitle) = 0 Then
.LeftHeader = Replace(.LeftHeader, "Title", "Title " & strTitle)
End If
If InStr(1, .LeftHeader, "Location" & strLocation) = 0 Then
.LeftHeader = Replace(.LeftHeader, "Location", "Location " & strLocation)
End If
If InStr(1, .LeftHeader, "Target group" & strTarget) = 0 Then
.LeftHeader = Replace(.LeftHeader, "Target group", "Target group " & strTarget)
End If
If InStr(1, .LeftHeader, "Document type" & strType) = 0 Then
.LeftHeader = Replace(.LeftHeader, "Document type", "Document type " & strType)
End If
End With
Klappt:
Ich fülle sie ein zweites Mal. Klappt. Ein drittes Mal. Fehler:
Die LeftHeader-Eigenschaft des PageSetup-Objektes kann nicht festgelegt werden.
Hä?
Ich „schaue nach“, was in der Kopfzeile steht:
MsgBox ActiveSheet.PageSetup.LeftHeader
Stimmt – ich erinnere mich – die Formatierungsanweisungen stehen vor den Texten. Abgesehen davon, dass ich nicht mehrfach die Texte in die Kopfzeile schreiben darf, muss ich die Kopfzeile anders erzeugen:
ActiveSheet.PageSetup.LeftHeader = _
„&““Arial,Fett““&12“ & „Title “ & strTitle & Chr(10) & _
„&10“ & „Document type “ & strType & Chr(10) & _
„Target group “ & strTarget & Chr(10) & _
„Location “ & strLocation
Und DAS klappt:
Böse, böse, böse! Böses Excel!
Ich erinnere mich – ich habe vor einigen Jahren schon einmal über diese merkwürdigen Kopf- und Fußzeilen geschrieben: