Code säubern und aufräumen sollte der erste Schritt sein.
1) With-Blöcke richtig stellen.
With Worksheets("BerichtMonat")
Range("a1:z5000").Interior.Color = vbWhite
Range("a1:z5000").Borders.LineStyle = -4142
Die Range bezieht sich hier nicht zwingend auf das Blatt "BerichtMonat" -> Vor Range gehört ein Punkt.
Dieses Problem hast du an mehreren Stellen in deinem Makro.
2) Wozu die Sprungmarke nach oben?
Das nachträgliche Anpassen von Variable n ist auch verwirrend und mit Sicherheit auch nicht erforderlich, wenn sauber gelöst.
startdienst
So etwas erschwert nicht nur das Debugging, es ist auch eine potentielle Fehlerquelle -> Problem anders lösen.
3)
ActiveSheet.PageSetup.PrintArea = "a1:j" & n + 1
Warum verwendest du ActiveSheet? Du solltest doch wissen welchen Sheet du gerade ansprichst/ausdrucken möchtest; also sprich dieses Blatt auch explizit an.
Columns("C:C").Select
Selection.EntireColumn.Hidden = True
In 99,9% der Fälle gehört das Select da nicht hin.
Schreibe
Worksheet("BerichtMonat").Columns("C:C").EntireColumn.Hidden = True
oder verwende für das Blatt eine lokale Variable.
Grüße
|