Druckbild auf eine Seitenbreite hochskalieren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Druckbild auf eine Seitenbreite hochskalieren
von: Martin
Geschrieben am: 14.09.2015 19:24:55

Hallo,
gibt es eine Möglichkeit das Druckbild einer Tabelle auf die maximal mögliche Seitenbreite zu vergrößern? Eine automatische Funktion habe ich nicht gefunden und daher versucht eine VBA-Lösung zu schreiben. Aber auch mein VBA-Versuch klappt leider nicht zuverlässig (...manchmal entsteht doch ein Seitenumbruch):

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Dim intZoom As Integer
    
    'Kontrolle auf Seitenumbrüche
    If ActiveSheet.VPageBreaks.Count = 0 Then
        
        With ActiveSheet.PageSetup
            
            'Aktuellen Zoom auslesen
            intZoom = .Zoom
            
            'Zoom erhöhen, bis Seitenumbruch entsteht
            Do
                .Zoom = .Zoom + 1
                '.FitToPagesWide = 1
            Loop Until ActiveSheet.VPageBreaks.Count > 0
            
            'Zoom um 1 minimieren, um Seitenumbruch zu entfernen
            .Zoom = .Zoom - 1
            
            
        End With
    
    End If
    
End Sub
Viele Grüße
Martin

Bild

Betrifft: AW: Druckbild auf eine Seitenbreite hochskalieren
von: Michael
Geschrieben am: 16.09.2015 14:40:47
Hi Martin,
Deine Aufgabenstellung widerspricht sich: wenn Du auf SeitenBREITE skalierst, ist doch verständlich, daß hin und wieder ein SeitenUMBRUCH vorkommt. Dann skaliere eben auf SeitenHÖHE.
Lies mal z.B. hier: http://www.office-loesung.de/ftopic306476_0_0_asc.php
oder gugel nach excel vba print to fit
Schöne Grüße,
Michael

Bild

Betrifft: AW: Druckbild auf eine Seitenbreite hochskalieren
von: Martin
Geschrieben am: 16.09.2015 14:44:46
Hallo Michael,
vielen Dank für die Antwort. Eventuell habe ich mich etwas unglücklich ausgedrückt. Es soll nur horizontal kein Seitenumbruch entstehen, also die zu druckende Tabelle soll eine Seitenbreite nicht überschreiten. Nach unten hin können gerne Seitenumbrüche entstehen, das ist mir egal.
Viele Grüße
Martin

Bild

Betrifft: AW: Druckbild auf eine Seitenbreite hochskalieren
von: Michael
Geschrieben am: 16.09.2015 23:18:37
Hallo Martin,
und das .FitToPagesWide = 1 geht nicht?
Bei MS steht https://msdn.microsoft.com/en-us/library/office/ff194365.aspx?f=255&MSPPError=-2147217396
daß zoom ausgeschaltet sein muß, damit die Seitenbreite geht - siehe Codeschnipsel dort.
Schöne Grüßé,
Michael

Bild

Betrifft: AW: Druckbild auf eine Seitenbreite hochskalieren
von: Martin
Geschrieben am: 16.09.2015 23:30:55
Hallo Michael,
leider geht .FitToPagesWide nicht, weil das die Seite immer auf eine Seitenbreite herunterskaliert, aber eben leider nicht "hochskaliert". Bei .FitToPagesWide werden die 100%-Zoom also niemals überschritten.
Viele Grüße
Martin

Bild

Betrifft: vielleicht ein Ansatz
von: Michael
Geschrieben am: 17.09.2015 01:12:50
Hi Martin,
ja, scheint so zu sein.
Ich sträube mich grundsätzlich dagegen, Excel in so einer Schleife lange rechnen zu lassen - das dauert sicherlich.
Man kann die Pixelabstände der Zellen mit VBA ermitteln:

Sub herumspielen()
' angeregt durch:
' http://www.office-loesung.de/ _
ftopic620406_0_0_asc.php
Dim x1&, x2&
Dim a As Variant
a = Split(ActiveSheet.PageSetup.PrintArea, ":")
x1 = ActiveWindow.PointsToScreenPixelsX(0) + (Range(a(0)).Left / 72 * 96)
x2 = ActiveWindow.PointsToScreenPixelsX(0) + (Range(a(1)).Offset(, 1).Left / 72 * 96)
MsgBox "x1: " & x1 & " x2: " & x2
End Sub

Die sind allerdings abhängig vom Zoom-Faktor der Bildschirm-Ansicht.
Trotzdem: Du kannst mal mit 100% Pagesetup.Zoom die max. Grenzen des Druckbereichs ermitteln und bei einem konkreten Ausdruck entsprechend multiplizieren.
Dann bist Du schon mal in der Nähe des gesuchten Wertes.
Das andere ist, evtl. eine zweite Schleife dranzuhängen, in der Du wieder um 1 runterzählst, bis der Umbruch wieder weg ist.
Befriedigen finde ich das alles nicht, aber auf Anhieb fällt mir nichts besseres ein.
Schöne Grüße,
Michael

Bild

Betrifft: AW: vielleicht ein Ansatz
von: Martin
Geschrieben am: 17.09.2015 09:45:15
Hallo Michael,
das ist ein wirklich sehr interessanter Ansatz, dem ich relativ hohe Erfolgschancen einräume. Ich bedanke mich vielmal für deine Anregung!
Viele Grüße
Martin

Bild

Betrifft: gerne, vielen Dank für die Rückmeldung owT
von: Michael
Geschrieben am: 17.09.2015 16:35:03


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Hilfe bei Makroausführung"