Clever-Excel-Forum

Normale Version: Kopfzeile bei allen Tabellenblätter ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Guten Tag Excel-Profis,

ich habe eine Datei mit mehreren Tabellenblätter und je nach dem welche ich brauche hab ich ein extra Tabellenblatt mit Kontrollkästchen die ich anwähle.
Mit einem Button spuckt er genau die Seiten die ich angewählt habe in die Druckvorschau,
wenn ich aber per Seite einrichten die Kopfzeile ändere ändert er die nur auf der Seite die man gerade sieht.
Klar kann ich auch alle Tabellenblätter die ich brauche makieren und dann die Kopfzeile bearbeiten, aber genau das soll einfachere gehen, vllt. mit VBA und ein zusätzlichen Button.
Ich habe eine Beispieldatei angehängt, ich hoffe ihr könnt mir helfen.

Schöne Grüße Joe Angel
Hallo Joe,

einen code bekommst DU auch über das Aufzeichnen hin - der ist zwar ellenlang, lässt sich aber deutlich verkürzen Hier mal das augezeichnete Original:

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
    Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select
    Sheets("Tabelle3").Activate
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = "benutzerdefiniert"
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = "abgeschmiert"
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.708661417322835)
        .RightMargin = Application.InchesToPoints(0.708661417322835)
        .TopMargin = Application.InchesToPoints(0.78740157480315)
        .BottomMargin = Application.InchesToPoints(0.78740157480315)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = "benutzerdefiniert"
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = "abgeschmiert"
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.708661417322835)
        .RightMargin = Application.InchesToPoints(0.708661417322835)
        .TopMargin = Application.InchesToPoints(0.78740157480315)
        .BottomMargin = Application.InchesToPoints(0.78740157480315)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
End Sub
Guten Morgen André,

ich hab dein Makro probiert der schmeißt mich einfach nur auf das 3 Tabellenblatt und hat nur auf dem dritten in der Kopfzeile "benutzerdefiniert" stehen.
Bestimmt weil man die Parameter in VBA eingeben muss, aber bei mir sollte er die Seite einrichten Fenster erscheinen,
denn die Kopfzeile ändert sich ständig und es müssen Laien die Datei bedienen können.
Gibt es kein Befehl der direkt das Seite einrichten Fenster auf macht?

Gruß Joe
(24.09.2015, 07:11)Joe schrieb: [ -> ]Gibt es kein Befehl der direkt das Seite einrichten Fenster auf macht?

Hallo Joe,

Application.Dialogs(xlDialogPageSetup).Show


Gruß Uwe
Hallo Uwe,

genau das meine ich Danke. Aber irgendwie ändert er nur die Kopfzeile bei dem ersten Tabellenblatt, kannst du mal bitte rüber schauen?


Code:
Sub KopfFußzeile()
Dim i As Long
Dim oCheckbox As CheckBox
Dim strWs() As String

For Each oCheckbox In ActiveSheet.CheckBoxes
  If oCheckbox.Value = 1 Then
    i = i + 1
    If i = 1 Then
      ReDim strWs(1 To 1)
    Else
      ReDim Preserve strWs(1 To i)
    End If
    strWs(i) = oCheckbox.Caption
  End If
Next oCheckbox

If i > 0 Then
  Sheets(strWs).Application.Dialogs(xlDialogPageSetup).Show
Else
  MsgBox "Es wurde kein Blatt ausgewählt.", vbInformation
End If
End Sub

Gruß Joe
Hallo an alle,

ich möchte jetzt im kompletten Arbeitsblatt die Kopfzeile und Fußzeile änder, sprich wenn ich auf ein Button klicke sollte das Fenster "Seite einrichten" erscheinen.
Bei meinem Code ändert der aber nur  die Kopfzeile auf dem aktiven Arbeitsblatt.
Hat jemand eine Lösung?


Code:
Sub Makro1()
   Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select
   Application.Dialogs(xlDialogPageSetup).Show
End Sub

Gruß Joe
Hallo Joe,

bitte probiere es nochmal so:

Code:
Sub SeiteEinrichten()
Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select
Application.PrintCommunication = False
Application.Dialogs(xlDialogPageSetup).Show
Application.PrintCommunication = True
End Sub

Das läuft bei mir unter Excel 2013 und erzeugt auf allen Blättern den Eintrag.
Danke André läuft bei mir :19: 

Gruß Joe Angel
Noch eine Frage wofür steht
Code:
Application.PrintCommunication = False

genau?
Hi Joe,

guckst du hier
Seiten: 1 2