AW: Hilfe bei Kopf und Fußzeile
29.08.2008 19:43:00
fcs
Hallo Oblivion,
der Spaltenaufbau des Fusstextes wird dadurch ereicht, dass im Code die Texte aus der Tabelle mit Leerzeichen aufgefüllt werden.
Der gesamte Text wird dann vom Makro in das linke Fusszeilen feld eingetragen. Man muss jedoch darauf achten, dass der Fusstext pro Feld max. 255 Zeichen lang ist. (war zumindest in den älteren Excelversionen so.
Den Text für die Kopfzeile kannst du natürlich in ähnlicher Weise zusammen bauen und in den Header des Blattes einfügen.
Die BeforePrint-Prozedure schaut dann beispielhaft wie folgt aus.
Gruß
Franz
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim wks As Worksheet, wksFuss As Worksheet
Dim strKopftext As String, strFusstext As String
Set wksFuss = Worksheets("TabelleKundF") 'Tabellenblatt mit Kopf-/Fusszeileninhalten
Select Case ActiveSheet.Name
Case "Tabelle1" 'Tabelle deren Fusstext dynamisch angepasst werden soll
Set wks = ActiveSheet
With wksFuss
'Schriftart und Font-Größe für Fusstext
'Hinweis als Schriftart keine Proportionalschrift verwenden, wenn die Spalten immer _
an der gleichen Position beginnen sollen.
strFusstext = "&""Courier New,Standard""&8"
'Spalte 1
strFusstext = strFusstext & Fusstext(Text:=.Range("E2").Text, Laenge:=20, bolVor:=False) _
'Spalte 2
strFusstext = strFusstext & Fusstext(Text:=.Range("F2").Text, Laenge:=15, bolVor:=False) _
'Spalte 3
strFusstext = strFusstext & Fusstext(Text:=.Range("G2").Text, Laenge:=10, bolVor:=False) _
'Spalte 4
strFusstext = strFusstext & Fusstext(Text:=.Range("H2").Text, Laenge:=10, bolVor:=False) _
'Spalte 5
strFusstext = strFusstext & Fusstext(Text:=.Range("I2").Text, Laenge:=20, bolVor:=False) _
'Spalte 6
strFusstext = strFusstext & Fusstext(Text:=.Range("J2").Text, Laenge:=16, bolVor:=True)
'Schriftart und Font-Größe für Kopftext
strKopftext = "&""Courier New,Standard""&8"
'Spalte 1
strKopftext = strKopftext & Fusstext(Text:=.Range("A2").Text, Laenge:=25, bolVor:=False) _
'Spalte 2
strKopftext = strKopftext & Fusstext(Text:=.Range("B2").Text, Laenge:=15, bolVor:=False) _
'Spalte 3
strKopftext = strKopftext & Fusstext(Text:=.Range("C2").Text, Laenge:=26, bolVor:=False) _
'Spalte 4
strKopftext = strKopftext & Fusstext(Text:=.Range("D2").Text, Laenge:=15, bolVor:=True)
End With
With wks
.PageSetup.LeftFooter = strFusstext
.PageSetup.LeftHeader = strKopftext
End With
Case Else
'do nothing
End Select
End Sub