Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Kopfzeile bei allen Tabellenblätter ändern
#1
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


Angehängte Dateien
.xlsm   dynamisches-Bild+Kopfzeile.xlsm (Größe: 24,51 KB / Downloads: 7)
Antworten Top
#2
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
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
Antworten Top
#4
(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
Antworten Top
#5
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
Antworten Top
#6
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
Antworten Top
#7
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.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Joe
Antworten Top
#8
Danke André läuft bei mir :19: 

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

genau?
Antworten Top
#10
Hi Joe,

guckst du hier
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste