Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hilfe bei Kopf und Fußzeile

Hilfe bei Kopf und Fußzeile
28.08.2008 18:20:00
oblivion
Hallo, benötige mal wieder eure Hilfe. Ich brauche eine Lösung für folgendes Problem. Für ein Tabellenblatt muss ich Kopf und Fußzeile anlegen. Hab es mit der Standardvariante probiert, aber die hat zu wenig Spalten (brauche für Kopfzeile 4 Spalten unterschiedlich breit und für Fußzeile 6 Spalten unterschiedlich breit). Ich wollte es erst direkt in einer Exceltabelle erstellen, aber ich habe dann gemerkt, das das bicht geht, da ich erstens keine Spalten einfügen kann, sonst klappt dass mit der automatischen Zeilenanpassung nicht mehr, wenn ich Zellen verbinde und dann müsste ich es für jede Seite manuell machen, aber da ich nie genau weiß wo eine Seite aufhört und eine andere anfängt ist das schwierig. Kann ich es eventuell so machen, dass ich mir in einem anderen Tabellenblatt die Kopf und Fußzeile in der Tabelle erstelle und per Makro mir dann diese Tabelle als Kopf und Fußzeile für jede Seite anzeigen lasse.
Ich hoffe ihr könnt mir helfen.
Gruß Oblivion

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe bei Kopf und Fußzeile
28.08.2008 18:42:51
fcs
Hallo Oblivion,
die einzige Möglichkeit, die ich kenne wäre die beiden Tabellen für Kopf- bzw. Fusszeile als Grafik-Datei zu erstellen und dann in den Linken Kopf- bzw. Fusstext einzufügen.
Funktioniert natürlich nur, wenn der Inhalt der beiden Tabellen sich nicht ändert.
Gruß
Franz
AW: Hilfe bei Kopf und Fußzeile
28.08.2008 18:45:48
Uduuh
Hallo,
du kannst sie dir in einer anderen Tabelle erstellen und als verknüpftes Bild einfügen.
Bereich kopieren, in deine Tab gehen, shift drücken und auf Bearbeiten klicken.
Gruß aus’m Pott
Udo

AW: Hilfe bei Kopf und Fußzeile
29.08.2008 11:40:00
fcs
Hallo Udo, hallo Oblivion
Superlösung.
Sie funktioniert aber "nur" für die Wiederholungszeilen oben, indem man das verknüpfte Bild drüberlegt.
Für die Fusszeile muss man auf eine Grafik (für konstanten Text) zurückgreifen oder per Makro den Fusszeilen-Text vor dem Drucken/Seitenvorschau aktualisieren.
Nachfolgend ein Code-Beispiel. Der Code muss im VBA-Editor unter "DieseArbeitsmappe" eingefügt werden.
Gruß
Franz

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim wks As Worksheet, wksFuss As Worksheet, strFusstext As String
Set wksFuss = Worksheets("TabelleKundF") 'Tabellenblatt mit 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)
End With
With wks
.PageSetup.LeftFooter = strFusstext
End With
Case Else
'do nothing
End Select
End Sub
Private Function Fusstext(Text As String, Laenge As Long, bolVor As Boolean) As String
'generiert einen Text fester Länge, wobei ggf. vor oder hinter dem Text Leerzeichen _
eingefügt werden
If Len(Text) > Laenge Then
Fusstext = Left(Text, Laenge)
Else
If bolVor = True Then
'Leerzeichen vor dem Text auffüllen
Fusstext = Space(Laenge - Len(Text)) & Text
Else
'Leerzeichen hinter dem Text auffüllen
Fusstext = Text & Space(Laenge - Len(Text))
End If
End If
End Function


Anzeige
AW: Hilfe bei Kopf und Fußzeile
29.08.2008 15:38:00
oblivion
Hallo, danke für eure Antworten. Wenn ich den Code von fcs richtig interpretiere, dann benutzt er auch sechs Spalten für die Fußzeile. Hatte in meiner bisherigen Formatierung aber bloß 4 Zurverfügung, oder sind das die Spalten wo in der Tabelle für die Fußzeilen der Text steht und hier wird darauf hingewiesen wo das ist. Kann man das gleiche nicht auch für die Kopfzeile machen? Danke für eure Hilfe.
Gruß Oblivion
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


Anzeige
AW: Hilfe bei Kopf und Fußzeile
30.08.2008 17:39:53
oblivion
Hallo, wollte grad deinen Code ausprobieren. Hab ihn in DieseArbeitsmappe kopiert und an meine Tabellen angepasst. Wenn ich jetzt auf Seitenansicht gehe, bekomme ich folgende Fehlermeldung: Sub oder Fuction nicht definiert. Wenn ich auf Debug gehe, dann springt er in den Editor und markiert die erste Zeile ("Private Sub ...) gelb. Woran liegt das und was mache ich falsch?
Danke schon mal für die Hilfe.
Gruß Oblivion
AW: Hilfe bei Kopf und Fußzeile
01.09.2008 10:02:00
fcs
Hallo Oblivion,
du benötigt auch die 2. Prozedur aus der vorherigen Antwort, die die Leerzeichen am jeweiligen Text hinzufügt.
Diese fügst du ebenfalls unter "DieseArbeitsmappe" ein.
Gruß
Franz
hier nochmals die 2. Prozedur:

Private Function Fusstext(Text As String, Laenge As Long, bolVor As Boolean) As String
'generiert einen Text fester Länge, wobei ggf. vor oder hinter dem Text Leerzeichen _
eingefügt werden
If Len(Text) > Laenge Then
Fusstext = Left(Text, Laenge)
Else
If bolVor = True Then
'Leerzeichen vor dem Text auffüllen
Fusstext = Space(Laenge - Len(Text)) & Text
Else
'Leerzeichen hinter dem Text auffüllen
Fusstext = Text & Space(Laenge - Len(Text))
End If
End If
End Function


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige