Tag Archives: Kopfzeile

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:

Zwischen Reden und Tun liegt das Meer

Ärgerlich: viele Dinge kann man auf mehreren Blättern gleichzeitig erledigen, wenn man mehrere Blätter mit [Strg9- oder [Shift]-Taste markiert (also den Gruppenmodus aktiviert): Zellen formatieren, beschriften, Formeln einfügen, Spalten verbreitern, die Seite einrichten. Leider nicht einen Blattschutz auf alle selektierten Blätter anwenden. Und: Folgende Sache geht leider auch nicht:

Man kann zwar auf allen Blättern in Kopf- oder Fußzeile ein Bild einfügen. Ändern man jedoch die Bildgröße, wird sie nur auf einem Blatt geändert. Schade!

I ¤ non ASCII-characters

Letzte Woche in der Excel-VBA-Schulung. Um die Objekte näher zu bringen, beginne ich mit mit dem Makrorekorder. Wir zeichnen eine Reihe Befehle auf. Beispielsweise:

Füge in die Kopfzeile ein Bild ein:

ActiveSheet.PageSetup.RightHeaderPicture.Filename = _
„F:\Eigene Bilder\Bali\PIC00020.jpg“
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = „“
.PrintTitleColumns = „“
End With
Application.PrintCommunication = True
ActiveSheet.PageSetup.PrintArea = „“
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.LeftHeader = „“
.CenterHeader = „“
.RightHeader = „&G“
.LeftFooter = „“
.CenterFooter = „“
.RightFooter = „“
[…]

Das Ergebnis:

Wir löschen das Bild und führen das Makro erneut aus. Das Ergebnis: nichts! Ein Blick in den Dialog „Seite einrichten“ zeigt jedoch, dass etwas in der Kopfzeile ist. Ein Bild?

Der Grund ist schnell gefunden: Die Zeile:

Application.PrintCommunication = False

„Gibt an, ob die Kommunikation mit dem Drucker aktiviert ist.“ Deshalb wird zwar das Bild eingefügt aber nicht angezeigt. Also: Zeile löschen – und schon funktioniert es. Manchmal (oft!?!) liefert der Makrorekorder eben doch nicht den besten Code …

Übrigens: auf der Microsoft-Seite findet sich folgende Erklärung:

„Legen Sie die PrintCommunication-Eigenschaft auf False fest, um die Ausführung von Code zu beschleunigen, der PageSetup-Eigenschaften festlegt. Legen Sie die PrintCommunication-Eigenschaft auf True fest, nachdem Sie Eigenschaften zum Ausführen eines Commits aller zwischengespeicherten PageSetup-Befehle festgelegt haben.“

Aha!

 

Wer den Kopf in den Sand steckt, knirscht danach mit den Zähnen.

Sehr geehrter Herr Martin,

ich habe ein Problem mit Excel und bin bei meiner Internetrecherce auf ihre Seite gestoßen. Sie gefällt mir sehr gut.

Da ich leider keine Info zu meinem Fehler gefunden habe hoffe ich das Sie mir weiterhelfen können.

Hier mein Fehler:

Wenn ich in der Kopf- oder Fußzeile eine Zahl als erstes Zeichen einsetze macht mir Excel automatisch ein Leerzeichen davor. Wenn ich einen Buchstaben als erste Zeichen habe dann wird nichts eingefügt. Ich habe keine Ahnung warum und wie man diesen Automatismus deaktiviert.

Unter Seitenlayout/Seite einrichten ändert sich auch nichts.

Ich hoffe Sie haben eine Lösung

Die Eingabe

Die Eingabe

Und plötzlich ein Leerzeichen

Und plötzlich ein Leerzeichen vor dem 1. Quartal

Hallo Frau H.,

was bekomme ich für die Antwort? *lach*

Im Ernst:

  1. DAS habe noch nie gesehen. Ich grenze Ihr Problem ein. Ich trage in Kopfzeile einen Text ein, der mit einer Nummer beginnt. Klappt.
    Ich ändere die Schriftgröße. Padautz – Sie haben das Leerzeichen.
  1. Ich füge in die Datei (in Visual Basic) ein Makro ein, das mir den Inhalt der Kopfzeile ausliest (was steht denn da wirklich drin):

Sub Kopfzeile()

MsgBox ActiveSheet.PageSetup.LeftHeader

End Sub

Es liefert:

„&“ITC Quay Sans Book,Standard“1. Quartal

GWEGH“

  1. Ich lerne: Die Schriftart und -größe ist Teil der Kopfzeile und keine eigene Eigenschaft. Sie wird mit „&“+Schriftgröße vor den Text gesetzt. So wie Seitennummer und Dateiname auch mit & + Info codiert wird. Aus irgend einem Grund kollidiert nun & + Zahl. Keine Ahnung warum.
  1. Ich probiere ein bisschen – wenn Sie ein „&“ gefolgt von einem Leerzeichen vor Ihren Text eintragen, übergeht Excel diesen Fehler.

PS: DIESER Bug in Excel hat mich wirklich sehr irritiert. DARÜBER bin ich nämlich noch nie gestolpert.

Bild geht nicht weg

Das ist nicht komisch, was der Kollege da gemacht hat. Ich arbeite seit einer Weile in einer Excel-Datei – erst beim Drucken entdecke ich, dass ein Bild mit der Tabelle ausgedruckt wird. Ich sehe es aber nicht. Wenn ich es über Start / Bearbeiten / Suchen und Auswählen / Gehe zu / Inhalte / Objekte suche – dann findet er auch kein Bild. Was kann ich nur tun?

Ein Bild wird mit der Datei gedruckt.

Ein Bild wird mit der Datei gedruckt.

Es ist aber nicht sichtbar noch auffindbar.

Es ist aber nicht sichtbar noch auffindbar.

Die Antwort: Wechseln Sie in die Seitenlayout-Ansicht (Ansicht / Arbeitsmappenansichten / Seitenlayout). Dort sehen Sie das Bild (auch wenn Sie es dort so nicht finden können). Wechseln Sie in die Kopfzeile (oder Fußzeile). Sie sehen dort den Text „&[Grafik]“. Wenn Sie ihn markieren können Sie das Bild löschen.

In der Layoutansicht sieht man das Bild

In der Layoutansicht sieht man das Bild

In der Layoutansicht kann man das Bild löschen.

In der Layoutansicht kann man das Bild löschen.