Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Variablen Druckbereich mittels VBA einrichten | Herbers Excel-Forum


Betrifft: Variablen Druckbereich mittels VBA einrichten von: Space
Geschrieben am: 12.01.2010 15:42:15

Hallo Forum,

habe bisher nur ähnliche Probleme gefunden, die mir nicht weitergeholfen haben. Ich habe den folgenden Code in VBA eingegeben um über einen Button in Excel über den Standarddrucker das 2.te Tabellenblatt (Kontakte) zu drucken.
Mit einem festen Wert für den Druckbereich funktioniert alles einwandfrei. Da meine zu druckende Tabelle sich aber ständig ändert und immer mehr Zeilen (keine Spalten) hinzukommen, würde ich die Zeilen gerne abfragen lassen, sodass er bis zur ersten Zeile sucht in der kein Wert mehr ist:

Private Sub CommandButton4_Click()

'Druckbereich festlegen und drucken
Dim Zeile As Integer
Zeile = 10

Do Until Cells(Zeile, 3) = ""
    Zeile = Zeile + 1
Loop

ActiveSheet.PageSetup.PrintArea = "$A$8:$R$Zeile"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

End Sub
Wenn ich bei - ActiveSheet.PageSetup.PrintArea = "$A$8:$R$Zeile" - anstatt Zeile z.B.: 40 angebe, dann druckt er mir von Zeile 8 - 40. Jetzt habe ich die Zeile als Variable deklariert und in eine Do .. Loop Schleife integriert (Zeilenwert ist dann richtig) und es kommt die Fehlermeldung:

Laufzeitfehler 1004 - Anwendungs- oder objektdefinierter Fehler

kann mir jemand weiterhelfen? Vielleicht muss ich die Variable Zeile auch nicht als Integer sondern anders deklarieren?

Wäre sehr dankbar für Rückmeldungen!

MfG
Space

  

Betrifft: AW: Variablen Druckbereich mittels VBA einrichten von: Rudi Maintaire
Geschrieben am: 12.01.2010 16:26:29

Hallo,

Private Sub CommandButton4_Click()
'Druckbereich festlegen und drucken
Dim Zeile As Long
Zeile = Cells(10, 3).End(xlDown).Row
ActiveSheet.PageSetup.PrintArea = "$A$8:$R$" & Zeile
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
Gruß
Rudi


Beiträge aus den Excel-Beispielen zum Thema "Variablen Druckbereich mittels VBA einrichten"