du müstest den Bereich erst ermitteln, da es sich um Datumsangaben handelt, wäre das mit Formeln oder mit vba möglich.
du suchst also nach 1.Februar und Monatsende(Februar), mit der Vergleich() funktion bekommst du Zahlenwerte, die du in den Text des Bereiches einbauen kannst. zb. "$A$" & ZeilenNr1Febr & ":$G$" & ZeilenNrMonatsEndeFebr
Ich habe hier im Beispiel das Arbeitsblatt "Tabelle1" verwendet, das müßte noch angepasst werden. Oder du verwendest Activesheet. Das birgt aber gewisse Risiken, denn das aktive Blatt kann auch jedes andere Blatt sein.
Sub Druckbereich_Februar()
ActiveSheet.PageSetup.PrintArea = monatsbereich(2)
ActiveSheet.PrintPreview
End Sub
Function monatsbereich(monat&) As String
'die function gibt im Fehlerfall einen leeren Text zurück,
' wodurch der Druckbereich quasi entfernt wird.
Dim ZeilenNr1Febr, ZeilenNrMonatsEndeFebr, datum As Date, rng As Range
datum = DateSerial(Year(Date), monat, 1)
With Worksheets("Tabelle1") ' hier Blattname anpassen
Set rng = .Columns(1)
End With
ZeilenNr1Febr = Application.Match(CDbl(datum), rng, 0)
If IsNumeric(ZeilenNr1Febr) Then
ZeilenNrMonatsEndeFebr = Application.Match(WorksheetFunction.EoMonth(datum, 0), rng, 0)
If IsNumeric(ZeilenNrMonatsEndeFebr) Then
monatsbereich = "A" & ZeilenNr1Febr & ":G" & ZeilenNrMonatsEndeFebr
Else
monatsbereich = ""
End If
Else
monatsbereich = ""
End If
End Function
|