Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
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

Code für Kopfzeile anpassen!

Code für Kopfzeile anpassen!
20.12.2013 23:36:50
Thomas
Allen einen schönen guten Abend!
Mit folgendem Code wird auf allen Tabellenblättern der Mappe dir Kopfteile generiert aber in Tabelle4 und 5 will und brauch ich das nicht. Gesamt 8 Tabs in der Mappe.
Wer kann mir da helfen?
~

Sub Kopf_und_Fusszeile_setzen()
'Auf jedem Tabellenblatt wird die Fusszeile gesetzt
Dim ws As Worksheet
For Each ws In Worksheets
With ActiveSheet.PageSetup
.LeftHeader = "&""Arial,Standard""&12" & "Projekt:           " & Range("D5").Value  _
_
& vbLf & "Anlagenbez.:  " & Range("D6").Value _
& vbLf & "Gerätebauart: " & Range("D7").Value
.CenterHeader = "&""Arial,Standard""&12" & vbLf & vbLf & "ID:" & Range("J7").Value
.RightHeader = "&""Arial,Standard""&12" & "Kom.-NR.: " & Range("Q5").Value _
& vbLf & "Sachbearbeiter: " & Range("Q6").Value _
& vbLf & "Zeichn.-NR.: " & Range("Q7").Value
End With
Next ws
End Sub
~
Wenn das geflacker noch abgestellt werden könnte wäre super, Danke!
Grüß Thomas

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

Betreff
Datum
Anwender
Anzeige
ohne Flackern -> ScreenUpdating = False
21.12.2013 08:21:50
Matthias
Hallo
Probiers mal so ...
Dim WS As Worksheet
Application.ScreenUpdating = False
For Each WS In Worksheets
If WS.Name  "Tabelle4" And WS.Name  "Tabelle5" Then
With WS.PageSetup
.LeftHeader = ...
.RightHeader = ...
.CenterHeader = ...
End With
End If
Next WS
Gruß Matthias

ohne Flackern -> ScreenUpdating = False
21.12.2013 08:50:24
Thomas
Guten Morgen Matthias,
ich habe es versucht aber leider noch immer auf allen Tabellen die Kopfzeile, auch habe ich des mit dem Registernamen versucht und auch auf allen Blättern die Kopfzeile.
Das geflacker ist gut geworden das aktive Blatt verschwindet nun nur ein mal ganz kurz des passt.
Gruß Thomas

Anzeige
ich kann ja nur mein Bsp testen ...
21.12.2013 09:07:57
Matthias
Hallo
Bei mir funktioniert es ohne das das Blatt "kurz verschwindet".
Warum das bei Dir so ist kann ich nicht beurteilen.
In den Blättern "Tabelle4" und "Tabelle5" sind nach dem getesteten Code
keine Daten.
Userbild
Gruß Matthias

AW: ich kann ja nur mein Bsp testen ...
21.12.2013 09:18:33
Thomas
Hallo Matthias,
dann mal eine blöde Frage wobei ich den Code in diese Arbeitsmappe und im Tabellenblatt 4 versucht habe ich sehe im Seitenlayout jedes mal die Kopfzeile und in der Druckvorschau auch.
Da ich in jedem Blatt ein Druckbereich festgelegt habe damit die Hilfspalten nicht gedruckt werden kann das ggf damit zusammen hängen?
Gruß Thomas

Anzeige
AW: ich kann ja nur mein Bsp testen ...
21.12.2013 10:39:22
Thomas
Hallo Matthias,
ich habe es herausgefunden woran es lag. Ich habe die Kopfzeile von Hand erst mal gelöscht das alle Felder leer waren und dann den Code neu gestartet. Ab da funktioniert es nun.
Hab ja den Code in einer neuen Mappe getestet und er lief da und das hat mich dann nach dem Einkaufen um mal abstand zu gewinnen auf die Idee gebracht mit dem löschen der Kopfzeilen in den Blättern.
Ich danke dir vielmals!
Gruß Thomas

AW: ich kann ja nur mein Bsp testen ...
21.12.2013 10:49:24
fcs
Hallo Thomas,
eigentlich gehört der Code in ein allgemeines Modul.
Er sollte auch unter DieseArbeitsmappe funktionieren.
Unter "Tabelle4" kann es Probleme geben, da du im Code mit Range -ohne Angabe des zugehörigen Blatts- arbeitest. Das Makro holt dann die Informationen immer aus den Zellen dieses Blattes, unabhängig davon welches Blatt das aktive Blatt ist.
Hier sollte im Code das Blatt auf das sich Range beziehen soll mit angegeben werden, um die Kopfzeileninformationen korrekt ausgelesen werden.
Die Ansicht (Seitenlayout, Normal, Umbruchvorschau) und auch eingestellte Druckbereiche spielen keine Rolle - zumindest in der von mir verwendeten Version Excel 2010. Die Kopf/Fußzeilen werden korrekt aktualisiert.
Gruß
Franz
Angepasster Code. Wenn die Kopfzeileninformationen jeweils aus dem Tabellenblatt ausgelesen werden sollen, dessen Kopfzeile angepasst werden soll, dann kannst du
Set wsData = ...
weglassen und vor .Range(...) durch ws ersetzen.
Sub Kopf_und_Fusszeile_setzen()
'Auf jedem Tabellenblatt wird die Fusszeile gesetzt
Dim ws As Worksheet, wsData As Worksheet
Application.ScreenUpdating = False
Set wsData = Worksheets("Tabelle1") 'Tabellenblatt mit den Kopfzeilen-Informationen
For Each ws In ActiveWorkbook.Worksheets
Select Case ws.Name
Case "Tabelle4", "Tabelle5"
'in diesen Tabellenblättern Kopfzeilen nicht formatieren
Case Else
With ws.PageSetup
.LeftHeader = "&""Arial,Standard""&12" & "Projekt:           " _
& wsData.Range("D5").Value _
& vbLf & "Anlagenbez.:  " & wsData.Range("D6").Value _
& vbLf & "Gerätebauart: " & wsData.Range("D7").Value
.CenterHeader = "&""Arial,Standard""&12" & vbLf & vbLf & "ID:" _
& wsData.Range("J7").Value
.RightHeader = "&""Arial,Standard""&12" & "Kom.-NR.: " & wsData.Range("Q5").Value _
& vbLf & "Sachbearbeiter: " & wsData.Range("Q6").Value _
& vbLf & "Zeichn.-NR.: " & wsData.Range("Q7").Value
End With
End Select
Next ws
Application.ScreenUpdating = True
End Sub

Anzeige
AW: ich kann ja nur mein Bsp testen ...
21.12.2013 10:59:58
Thomas
Guten Morgen Franz,
wie ich schon geschrieben habe musste ich erst die Kopfzeile leeren und dann hab ich es noch zur Sicherheit gespeichert und neu aufgemacht die Mappe und schon ging es. Die Tabelle 4 ist das aktive Blatt wo auch die Info für die Kopfzeile her kommt.
Ich werde dennoch deinem Hinweis folgen und es auch in ein Modul packen.
Auch dir ein Dankeschön!
Gruß Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige