Mit VBA Excel Seitenlayout bei Start aktualisieren möglich?

4 Antworten

Vom Beitragsersteller 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
'========= 

fx8350 
Beitragsersteller
 19.11.2020, 18:29

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

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

Bild zum Beitrag

 - (Microsoft Excel, VBA)

fx8350 
Beitragsersteller
 16.11.2020, 17:21

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

0
IchMalWiederXY  16.11.2020, 19:56
@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
fx8350 
Beitragsersteller
 18.11.2020, 21:35
@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 
Beitragsersteller
 18.11.2020, 21:36
@fx8350

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

0
fx8350 
Beitragsersteller
 18.11.2020, 21:40
@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
IchMalWiederXY  19.11.2020, 14:44
@fx8350

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

1
fx8350 
Beitragsersteller
 19.11.2020, 18:30
@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


fx8350 
Beitragsersteller
 24.11.2020, 17:03

Danke ich probiere das aus.

0
fx8350 
Beitragsersteller
 24.11.2020, 17:53
@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

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

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

fx8350 
Beitragsersteller
 16.11.2020, 17:23

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
hannes1806  18.11.2020, 15:40
@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
fx8350 
Beitragsersteller
 18.11.2020, 21:25
@hannes1806

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

0