[Excel/ VBA] Seiteneinrichtung

Knufu

Lieutenant
Registriert
Dez. 2011
Beiträge
592
Guten Morgen,

ich habe hier eine Seiteneinrichtung für ein Blatt (Header+Footer mit Text und Logo).
Die Eingaben für einige Werte erfolgen per Userform, inkl. der Höhe der Logos.
Klappt soweit alles prima.

Nun würde ich das Ganze gern auf alle "markierten" Blätter (ActiveWindow.SelectedSheets) anwenden.

Das klappt soweit auch aber:
Werden zwei Blätter und mehr markiert werden im ersten Blatt die Logos in 100% dargestellt. Erst ab dem zweiten markierten Blatt werden dann wieder die Einstellungen "durchgereicht".

Kennt jmd das Problem? Muss ich etwas initialisieren und dann wieder freigeben?
 
Hallo,

klingt so als ob in der Schleife die Reihenfolge nicht stimmen würde, sodass der erste Durchlauf mit anderen Werten erfolgt.
Kannst du Teile des Codes mal hier rein kopieren?
 
Hallo,

Wie gesagt wird Layout aus der UserForm2 aufgerufen.
Im Header unterscheide ich zwischen zwei Logos.

Code:
Sub Layout()
    Dim ...
   ' Papierformat und Papiergröße
    If UserForm2.ToggleButton2.Caption ..
    If UserForm2.ToggleButton3.Caption ..
          
    Dim objSheet As Worksheet
    For Each objSheet In ActiveWindow.SelectedSheets
        With objSheet
            .Activate

            With .PageSetup.RightHeaderPicture
                ' Logo 1
                If UserForm2.ToggleButton1.Caption ..
                        .Filename =
                .Height = Application.CentimetersToPoints(UserForm2.TextBox2.Text)
                End If

                ' Logo 2
                If UserForm2.ToggleButton1.Caption ..
                        .Filename =
                End If
                .Height = Application.CentimetersToPoints(UserForm2.TextBox2.Text)
                End If
            End With

            With .PageSetup.LeftFooterPicture
                .Filename =
                .Height = Application.CentimetersToPoints(UserForm2.TextBox2.Text)
            End With

            ' Seiteneinrichtung
            With .PageSetup
                .LeftHeader = ....
                .CenterHeader =
                .RightHeader = "&G"
                .LeftFooter = "&G"
                .CenterFooter = ..
                .RightFooter = ..
                ..
                .Orientation = Ausrichtung_txt
                .PaperSize = Papier_txt
            End With
        End With
    Next
End Sub
 
Knufu schrieb:
Im Header unterscheide ich zwischen zwei Logos.
In deinem Code steht in den Zeilen 17, 22 und 24 jeweils "End If". Das in der Zeile 22 ist ein Mal zu viel und müsste wohl weg.

Code:
With .PageSetup.RightHeaderPicture
                ' Logo 1
                If UserForm2.ToggleButton1.Caption ..
                        .Filename =
                .Height = Application.CentimetersToPoints(UserForm2.TextBox2.Text)
                End If

                ' Logo 2
                If UserForm2.ToggleButton1.Caption ..
                        .Filename =
                End If
                .Height = Application.CentimetersToPoints(UserForm2.TextBox2.Text)
                End If
            End With
 
Hallo,

Du hast recht. In der Kürzung des Codes ist ein Schleifenteil übriggeblieben...
Aber abgesehen davon läuft der Code ja für EINS bzw. für ALLE Blätter. Der Fehler tritt nur auf wenn ich eine Auswahl von Blättern markiere und dann auch nur auf dem ersten Blatt.
 
Zurück
Oben