Anzeige
Archiv - Navigation
1300to1304
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Druckbereich via VBA definieren

Druckbereich via VBA definieren
07.03.2013 11:54:39
Ken
Hallo,
ich habe ein Problem woran ich so langsam verzweifel...
Habe ein Excelblatt was mit Daten gefüllt ist die beim Ausdruck im Querformat 2 Seiten beanspruchen. Die Kopfzeile habe ich mit:
Range("7:7").Select
xlApp.ActiveWindow.FreezePanes = True
festgelegt. Ich weiß nur leider nicht wie ich per VBA schreiben soll, dass die zweite Seite auch diesen Kopfbereich am Anfang drucken soll. Mein Printcode sieht bis jetzt so aus:
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.PrintErrors = xlPrintErrorsDisplayed
.OddAndEvenPagesHeaderFooter = False
.DifferentFirstPageHeaderFooter = False
.ScaleWithDocHeaderFooter = True
.AlignMarginsHeaderFooter = True
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = ""
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
.FirstPage.LeftHeader.Text = ""
.FirstPage.CenterHeader.Text = ""
.FirstPage.RightHeader.Text = ""
.FirstPage.LeftFooter.Text = ""
.FirstPage.CenterFooter.Text = ""
.FirstPage.RightFooter.Text = ""
End With
Kann mir bitte jemand einen Tipp geben wo ich ansetzen muss...vielen Dank!
Ken

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Wiederholungszeilen via VBA definieren
07.03.2013 12:36:14
Erich
Hi Ken,
ActiveWindow.FreezePanes wirkt auf die Anzeige des Fensters des Blatts auf dem Bildschirm,
mit dem Druck hat das nichts zu tun.
Was du möchtest, ist wohl
ActiveSheet.PageSetup.PrintTitleRows = "$7:$7"
Das kannst du mit
.PrintTitleRows = "$7:$7"
hinter deinem "With ActiveSheet.PageSetup" schreiben.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: Wiederholungszeilen via VBA definieren
07.03.2013 12:58:50
Ken
Hallo Erich,
vielen Dank für die schnelle Antwort und den Tipp! Habe ich sofort umgesetzt, allerdings ist das Resultat gleich: erste Seite druckt den definierten Kopf (aber das passiert bei der ersten Seite ja sowieso) und auf der zweiten Seite steht dann der Rest, ohne den definierten Bereich ($7:$7).
Ich muss aber noch erwähnen, dass ich die Zeilen:
.FitToPagesWide = 1
.FitToPagesTall = 1
auf 2 gesetzt habe, ansonsten presst er alles auf eine Seite.
Es würde mir vielleicht helfen wenn ich dem Code sagen könnte in welcher Zeile die erste Druckseite aufhört und dann nochmal deinen Code einfügen, oder?
Also nochmal Danke und einen fast sonnigen Gruß aus Köln
Ken

Anzeige
AW: Wiederholungszeilen via VBA definieren
07.03.2013 13:03:39
Klaus
Hi Ken,
du machst es falsch. PrintTitleRows funktioniert definitv. In Zeile 7 stehen auch die Überschriften, ja?
Dein Makro, gekürtzt auf das wesentliche:
Sub TitleRows()
With ActiveSheet.PageSetup
PrintTitleRows = "$7:$7"
.FitToPagesWide = 2
.FitToPagesTall = 2
End With
End Sub
Grüße,
Klaus M.vdT.

AW: Wiederholungszeilen via VBA definieren
07.03.2013 13:15:19
Ken
Hallo Klaus M.vdT.,
ich habe meinen Code durch deinen ersetzt und das Ergebnis ist gleich bzw. eher schlimmer, weil er jetzt in Hochformat drucken will und daraus 30 Seiten macht. Aber abgesehen von den 30 Seiten, Zeile 1-7 ist nur im ersten Blatt zu sehen.
Gruß
Ken

Anzeige
AW: Wiederholungszeilen via VBA definieren
07.03.2013 13:18:54
Klaus
Zeile 1-7 ist Sub TitleRows()
With ActiveSheet.PageSetup
PrintTitleRows = "$1:$7"
.FitToPagesWide = 2
.FitToPagesTall = 2
End With
Und jetzt?
Grüße,
Klaus M.vdT.

AW: Wiederholungszeilen via VBA definieren
07.03.2013 13:30:58
Ken
Immer noch nicht, sorry.
Gruß
Ken

Datei bitte!
07.03.2013 13:43:16
Klaus
Hi Ken,
bei mir klappts.
Lädst du eben die Datei hoch bitte?
Grüße,
Klaus M.vdT.

Wiederholungszeilen via VBA definieren
07.03.2013 13:23:40
Erich
Hi Ken,
da geht es also wohl nicht nur um die eine Zeile 7, sondern um die Zeilen 1 bis 7?
Probier mal

Sub TitleRows()
With ActiveSheet.PageSetup
.Orientation = xlLandscape
.PrintTitleRows = "$1:$7"
.FitToPagesWide = 2
.FitToPagesTall = 2
End With
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Druckbereich via VBA definieren
07.03.2013 13:40:22
Ken
Es funktioniert jetzt! Und zwar haben wohl die Zeilen:
Range("7:7").Select
xlApp.ActiveWindow.FreezePanes = True
gestört, wo ich den oberen Bereich mit "einfriere". Er druckt jetzt auf jeder Seite den Bereich $1:$7.
Erstmal sorry, dass es so lange gedauert hat und vielen Dank für die tolle Hilfe!
Eine Frage hätte ich noch, kann ich trotzdem in dem Code angeben ab wann die zweite Seite gedruckt werden soll?
Gruß
Ken

Fenster fixieren, Seitenumbruch
07.03.2013 18:29:48
Erich
Hi Ken,
zum Fixieren des Fensters an Zelle A7 brauchst du nicht die ganze Zeile 7 zu selektieren (mit "7:7"). Dazu reicht
Cells(7, 1).Select '(markiert Zelle A7)
Wozu ist hier das xlApp. gut? Wenn das an dieser Stelle sinnvoll wäre, müsstest du Application und Workbook
an allen Stellen angeben, z. B. mit
With xlApp.ActiveWorkbook.ActiveSheet.PageSetup
Das muss aber vermutlich gar nicht sein,
With ActiveSheet.PageSetup
reicht wohl aus.
Was meinst du mit "ab wann die zweite Seite gedruckt werden soll"?
Geht es darum, vor einer bestimmten Zeile oder Spalte einen Seitenumbruch einzufügen?
Das geht mit den HPageBreaks bzw. VPageBreaks.
Probier mal:

Sub aaaaaa()
Cells(7, 1).Select   ' oder:  Range("A7").Select
ActiveWindow.FreezePanes = True
ActiveSheet.HPageBreaks.Add Before:=Cells(36, 1)  ' oder:  Before:=Range("A36")
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Fenster fixieren, Seitenumbruch
08.03.2013 10:10:19
Ken
Hallo Erich,
sorry für die späte Antwort.
Habe alles umgesetzt und es funktioniert :-) Vielen Dank!
Mein einziges Problem ist, dass der Ausgedruck nicht die ganze Zeite einnimmt, habe rechts noch einen Rand von ca. 5cm, oben und unten wäre auch noch platz.
Nochmal vielen Dank für die tolle Hilfe!
Ken

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige