PrintOut und Kopf- & Fußzeilen in VBA
Schritt-für-Schritt-Anleitung
Um Deine Kopf- und Fußzeilen in Excel mittels VBA anzupassen und den PrintOut-Prozess zu optimieren, folge diesen Schritten:
-
Öffne den VBA-Editor: Drücke ALT + F11
.
-
Erstelle ein neues Modul: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)", wähle "Einfügen" und dann "Modul".
-
Füge den folgenden Code ein:
'### Code in einem allgemeinen Modul ###
Public bolDruckenmakro As Boolean
Option Explicit
Sub aaDrucken()
bolDruckenmakro = True
SeiteEinrichten (Array("Daten"))
Worksheets(Array("Daten")).PrintOut
bolDruckenmakro = False
End Sub
Public Sub SeiteEinrichten(arrSheets)
Dim iSheet As Long
On Error Resume Next
For iSheet = LBound(arrSheets) To UBound(arrSheets)
With Sheets(arrSheets(iSheet)).PageSetup
.LeftHeader = "Text 1
"
.CenterHeader = "Text 2
"
.RightHeader = "&D" 'Datum
.RightFooter = "Tabelle: &A"
End With
Next
End Sub
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim arrBlatt(), intI As Long, oSheet As Object
On Error GoTo fehler:
If bolDruckenmakro = False Then
For Each oSheet In ActiveWindow.SelectedSheets
intI = intI + 1
ReDim Preserve arrBlatt(1 To intI)
arrBlatt(intI) = oSheet.Name
Next
Call SeiteEinrichten(arrSheets:=arrBlatt)
End If
Exit Sub
fehler:
Resume Next
End Sub
-
Passen den Code an: Stelle sicher, dass Du die Blattnamen und Inhalte in den Kopf- und Fußzeilen nach Deinen Bedürfnissen anpasst.
-
Testen: Führe das Makro aaDrucken
aus, um die Druckausgabe zu prüfen.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn Du Schwierigkeiten mit dem Standard-PrintOut VBA hast, kannst Du auch die PrintPreview
-Methode verwenden, um die Darstellung vor dem Drucken zu überprüfen. Hier ein Beispiel:
Sub aaSeitenvorschau()
bolDruckenmakro = True
SeiteEinrichten (Array("Daten"))
Worksheets(Array("Daten")).PrintPreview
bolDruckenmakro = False
End Sub
Diese Methode zeigt Dir eine Vorschau, bevor das endgültige PrintOut
erfolgt.
Praktische Beispiele
-
Drucken mehrerer Blätter:
Sub aaDruckenMehrere()
bolDruckenmakro = True
SeiteEinrichten (Array("Daten", "Tabelle3"))
Worksheets(Array("Daten", "Tabelle3")).PrintOut
bolDruckenmakro = False
End Sub
-
Drucken mit variierenden Daten:
Sub aaaVorschauTab3()
Dim Zeile
bolDruckenmakro = True
For Zeile = 2 To 8
Worksheets("Tabelle3").Cells(1, 2) = Worksheets("Daten").Cells(Zeile, 1)
SeiteEinrichten (Array("Tabelle3"))
Worksheets(Array("Tabelle3")).PrintPreview
Next
bolDruckenmakro = False
End Sub
Tipps für Profis
- Verwendung von Variablen: Deklariere globale Variablen, um Statusinformationen zwischen den Prozeduren zu übermitteln.
- Fehlerbehandlung: Implementiere eine robuste Fehlerbehandlung, um Probleme beim Drucken zu identifizieren und zu beheben.
- Dynamische Anpassungen: Stelle sicher, dass Deine Kopf- und Fußzeilen dynamisch anpassbar sind, je nach den Daten, die Du drucken möchtest.
FAQ: Häufige Fragen
1. Was kommt in Kopf und Fußzeile?
In der Kopfzeile kannst Du beispielsweise den Titel des Dokuments oder das Datum einfügen. In der Fußzeile bietet sich die Seitennummerierung oder der Name des Arbeitsblatts an.
2. Wie kann ich mehrere Blätter gleichzeitig drucken?
Verwende ein Makro, das alle gewünschten Blätter in einem Array auflistet und die PrintOut
-Methode aufruft, um alles gleichzeitig zu drucken. Achte darauf, die Kopf- und Fußzeilen vorher korrekt einzurichten.
3. Funktioniert das auch in Excel 2003?
Ja, der bereitgestellte VBA-Code sollte sowohl in Excel 2003 als auch in späteren Versionen funktionieren. Achte jedoch darauf, dass einige Funktionen möglicherweise leicht variieren können.