Wer kennt das nicht,
man hat ein Excel-Dokument, das in der Breite variiert und wenn man im Seitenlayout auf 1Seite Breite geht wird die Seite viel zu klein angezeigt. Es scheint sich um einen Bug in Excel zu handeln, der ab und zu den Seitenbreitenzoom nicht richtig einstellt.

Hier eine mögliche Lösung um den Zoom selbst zu errechnen und einzustellen.

Dim breite

For i = 1 To 19 'R=19 Spalten
    breite = breite + ((ActiveSheet.Columns(i).ColumnWidth + 0.71) / 5.1425)
  Next
  ActiveSheet.PageSetup.Zoom = Application.RoundDown((2750 / breite), 0)

 

In dem oben genannten Beispiel hat die Seite 19 Spalten. Zuerst werden die Breiten aller Spalten zusammengezählt (und gleich auf cm umgerechnet).

Bei dem PageSetup wird der Zoom errechnet. Die 2750 = Druckbreite * 100.

In dem Beispiel habe ich ein A4 Querformat  (29,7cm) - 1cm linker Rand - 1cm rechter Rand = 27,7 cm und noch 2mm Sicherheitsabstand = 27,5cm Druckbreite.

Bisher funktioniert die Funktion ohne Probleme.