Clever-Excel-Forum

Normale Version: Excel VBA - Druckbereich
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
[attachment=34904][attachment=34905]
Hallo zusammen,
per VBA habe ich mit Hilfe dieser Gruppe und ganz viel Google geschafft, den Druckbereich einer Bestellung automatisch festzulegen. Code hierfür:
With ActiveSheet.PageSetup
    .PrintTitleRows = "1:1"
    .HeaderMargin = Application.InchesToPoints(0.4)
    .LeftMargin = Application.InchesToPoints(1)
    .RightMargin = Application.InchesToPoints(1)
    .TopMargin = Application.InchesToPoints(1)
    .BottomMargin = Application.InchesToPoints(1)
    .Orientation = xlLandscape
    .Zoom = 100
    .FitToPagesWide = 1
    .FitToPagesTall = 1
Und danach öffnet sich automatisch die Druckvorschau.
Mein Problem: Betätige ich den "Bestellung generieren" Button, springt das Ganze wie gewollt in die Druckansicht. Nun ist aber die zweite Seite nur halb beschrieben, genau so wie die letzte.
Wie schaffe ich es, dass alle Seiten voll ausgeschöpft werden ?
Auf den Fotos zu erkennen, dass Seite 1 top ist, Seite 2 nur zur Hälfte gefüllt und Seite 3 ist dann wieder mehr gefüllt.
Danke!!!!!!
Hallöchen,

auf den Fotos erkenne ich das nicht Sad Ansonsten,
a) fase die Daten so zu zusammen, das es nur 2 Seiten werden
b) drucke die 3 Seiten einzeln und lege für jede einzeln den Zoom fest.
Tatsächlich soll es aber wirklich per Knopfdruck so generiert werden, dass meine Kollegen ihre Excel Tabelle ausfüllen können und via Button "Bestellung generieren" die Bestellung TOP aussehen soll.
Es klappt alles super, nur der Druckbereich wird halt nicht vollständig ausgefüllt sondern, wie oben beschrieben, die erste Seite ist komplett voll, die Zweite dann nur mit den Fixierten Spalten links und zwei-drei weitere statt komplett gefüllt zu sein. Die Dritte sieht dann wieder top und komplett gefüllt aus.

Aktuell habe ich für den Button folgende VBA drin:

Sub Bestellung_Generieren()
' Bestellung wird formatiert und springt in die Druckvorschau

  Dim AnzahlEinträgeZeilen As Integer
    Dim AnzahlEinträgeSpalten As Integer
   
AnzahlEinträgeZeilen = WorksheetFunction.CountA(Sheets("Steigerbestellung").Range("A:A"))
AnzahlEinträgeSpalten = WorksheetFunction.CountA(Sheets("Steigerbestellung").Range("1:1"))

  ActiveSheet.Range("$AE$15:$AE$47").AutoFilter Field:=1, Criteria1:="<>0"
    For Each zelle In Range("D21:D70").Cells
Next

Dim lngLastRow As Long, lngLastColumn As Long
    With ActiveSheet
        lngLastRow = .Cells.Find(What:="*", After:=Range("A1"), _
            SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
   
        lngLastColumn = .Cells.Find(What:="*", After:=Range("A1"), _
            SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

        .PageSetup.PrintArea = "$A4:" & .Cells(lngLastRow - 6, lngLastColumn - 2).Address 
    End With
With ActiveSheet.PageSetup
    .PrintTitleRows = "1:1"
    .HeaderMargin = Application.InchesToPoints(0.4)
    .LeftMargin = Application.InchesToPoints(1)
    .RightMargin = Application.InchesToPoints(1)
    .TopMargin = Application.InchesToPoints(1)
    .BottomMargin = Application.InchesToPoints(1)
    .Orientation = xlLandscape
    .Zoom = 100
    .FitToPagesWide = 1
    .FitToPagesTall = 1
End With
With ActiveSheet
.PrintPreview 'wechselt in die Druckansicht
End With

End Sub


Tatsächlich ist das das Einzige, was mir noch fehlt bis ich die Sheets abgeben kann Sad

Liebe Grüße
Hallöchen,

dann mal noch
c) Nimm statt .Zoom=100 dann .Zoom = False.