Mit VBA Excel Seitenlayout bei Start aktualisieren möglich?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
 Ich habe deine Tabelle angeschaut und den Code in "DieseArbeitsmappe" verändert in: (CODE in den einzelnen Worksheets, die das gleiche tun sollen habe ich auskommentiert.)
'=============
Option Explicit
Private Sub Workbook_Open()
    Dim msg As String
    Call Workbook_SheetActivate(Worksheets(1))
    msg = MsgBox("Soll das Eingabeformular gestartet werden?", vbYesNo, "")
    If msg = vbYes Then
        UserForm1.Show
    End If
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    With Sh.PageSetup
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    End With
    Application.ScreenUpdating = False
    ActiveWindow.View = xlNormalView
    ActiveWindow.View = xlPageBreakPreview
    ActiveWindow.View = xlPageLayoutView
    Application.ScreenUpdating = True
End Sub
'========= 

Jaaaaaa! Zumindest habe ich es nun geöffnet, den Code geändert und gespeichert. Mit der fehlerhaften Ansicht wieder geschlossen. Und beim Öffnen hat er es richtig angezeigt.

In den Tabellenblättern war auch noch ein Code, den ich dann deaktiviert habe.

Ich danke Dir. Ich hoffe es funktioniert auch bei den Anderen.

1

Irgendwas läuft hier falsch, Excel müsste alle Druckeinstellungen in der Datei speichern!

Woher ich das weiß:Eigene Erfahrung – Faulheit >> Neugier >> Wissen

Das komische ist, dass es auch so ist. Wenn ich also auf Drucken gehe und die Seitenansicht sehe, ist alles gut. Wenn ich an einem anderen PC Änderungen vornehme, kommt es dann auf meinem PC Zuhause z. B. wieder, dass das Seitenlayout nicht richtig angezeigt wird.

Also muss ich wieder erst einmal zur Druckansicht und zurück und dann wird alles auf einer Seite angezeigt.

Und das möchte ich gerne halt direkt beim Laden haben.

0
@fx8350

So etwas ähnliches hatte ich mal. Die Lösung war, auf beiden PCs den selben Standarddrucker einzustellen. Falls nicht der gleiche physische Drucker möglich ist, dann z.B. Print to PDF. Vielleicht ist das auch für dich eine Lösung.

1
@hannes1806

Das geht leider nicht. Das würde auf der Arbeit Probleme bringen.

0

Dies aus dem anderen Thread sollte doch die Lösung sein.
Beim Öffnen wird durch alle Sheets gegangen und dein Code ausgeführt.

 - (Excel, VBA)

Hi, ja eben nicht. Weil der Code bei mir nicht funktioniert. :-(

0
@fx8350

Es ist doch dein originaler Code. Nur die For each Schleife ist "drum rum" um jedes Sheet zu erreichen.
Wo hast du diesen Code in deinem Excel platziert.
Mach mal ein analoges Bild, wie ich es gepostet habe.

0
@IchMalWiederXY

Ich verstehe nicht mehr, was ich machen soll und was Du nun möchtest was ich tun soll.

Ich habe nun diesen Code im Workbook:

Option Explicit


Private Sub Workbook_Open()
    Dim msg As String
    Worksheets(1).Activate
    msg = MsgBox("Soll das Eingabeformular gestartet werden?", vbYesNo, "")
    'Worksheets("Fertigungsprüfplan Seite 1").[BA5] = Environ$("USERNAME")
    If msg = vbYes Then
    UserForm1.Show
    Else
    Exit Sub
    End If
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Unload UserForm1
End Sub


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    With Sh.PageSetup
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    End With
End Sub
0
@fx8350

Ich weiß nicht, wie ich die Bilder einfüge wie Du das gemacht hast...

0
@IchMalWiederXY

Ich verstehe nichts mehr. Excel nervt. Ich möchte doch nur, dass die Ansicht vom Seitenlayout auf einer Seite angezeigt wird...

Und wie ich das mit den Bildern mache weiß ich auch nicht.

Hier ist das Dokument zu finden, falls das hilft:

Testdokument

0
@fx8350

aahh. Du willst 'nur' dass man die "Blauen Linien" der Druckbereiche sieht ? (wenn man von Blatt zu Blatt wechselt ?

1
@IchMalWiederXY

Du hast mir die Lösung ja bei der anderen Frage geboten. Mal sehen, wie es auf anderen Rechnern funktioniert. Danke!

0

Ergänzung zu unserer Diskussion.
Der Pagesetup Befehl dauert recht lange.
Man kann dies wohl beschleunigen wenn man dies darum baut.
Application.PrintCommunication = False
'hier der Code der sich um das PageSetup kümmert.
Application.PrintCommunication = True

Danke ich probiere das aus.

0
@fx8350

Ja, klappt wunderbar.

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Application.PrintCommunication = False
    With Sh.PageSetup
    .Zoom = False
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    End With
    Application.PrintCommunication = True
    Application.ScreenUpdating = False
    ActiveWindow.View = xlNormalView
    ActiveWindow.View = xlPageBreakPreview
    ActiveWindow.View = xlPageLayoutView
    Application.ScreenUpdating = True
End Sub
1

Was möchtest Du wissen?