Mit VBA Excel Seitenlayout bei Start aktualisieren möglich?
Hallo,
in der Seiten- bzw. Druckansicht wird auf 1 Seite breite und 1 Seite hoch skaliert.
Beim Laden der Datei wird die Ansicht "Seitenlayout" aber noch auf mehrere Seiten verteilt angezeigt.
Kann man denn erzwingen, dass das Seitenlayout ohne Switchen zur Druckansicht beim Öffnen der Tabelle bzw. Tabellenblätter korrigiert wird?
4 Antworten
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.
Dies aus dem anderen Thread sollte doch die Lösung sein.
Beim Öffnen wird durch alle Sheets gegangen und dein Code ausgeführt.

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.
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
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:
aahh. Du willst 'nur' dass man die "Blauen Linien" der Druckbereiche sieht ? (wenn man von Blatt zu Blatt wechselt ?
Du hast mir die Lösung ja bei der anderen Frage geboten. Mal sehen, wie es auf anderen Rechnern funktioniert. Danke!
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
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
Irgendwas läuft hier falsch, Excel müsste alle Druckeinstellungen in der Datei speichern!
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.
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.
Das geht leider nicht. Das würde auf der Arbeit Probleme bringen.
Hi, ja eben nicht. Weil der Code bei mir nicht funktioniert. :-(