Hans Alborg
2014-08-17 10:50:41 UTC
Hallo Gruppe,
<Excel 07>
für meine Printroutine markiere ich den Bereich einer großen Tabelle und
drücke dann einen Button.
Das erstellt ein Printarea des selektierten Bereichs und startet die
Druckvorschau.
Daraus starte ich dann den Ausdruck.
Alles prima soweit.
Nun fehlt mir aber der Tabellenkopf.
Daher habe ich in der Breite des selektierten Zellbereichs die Spalten
übernommen und möchte die Zeilen 1-8 davon mitdrucken.
Auch das klappt noch, aber!
Statt einer Seite (ist so eingestellt) werden zwei gedruckt. Sofern zwischen
Kopf und Selektion nicht mitgedruckte Bereiche liegen.
Ich hab die 2 Bereiche mit Union() verbunden.
Workaround wäre es, die beiden Bereiche auf ein Hilfsblatt untereinander zu
kopieren und dann erst als Printarea zu erfassen.
Najaaa.
Hier mal der komplette Code:
' -----------------------------------------------------
Sub Druckbereich_wahl()
Dim rngKopf As Range
If Len(Selection.Address) < 6 Then Exit Sub
Set rngKopf = Range(Cells(1, Selection.Cells(Selection.Rows.Count, 1). _
End(xlUp).Column), Cells(8, Selection.Cells(Selection.Rows.Count, 1). _
End(xlUp).Column + Selection.Columns.Count - 1))
Set rngKopf = Union(rngKopf, Selection.Cells)
rngKopf.Select
With ActiveSheet.PageSetup
.PrintArea = Selection.Address
.Orientation = IIf(Selection.Width > Selection.Height, _
xlLandscape, xlPortrait)
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
.BlackAndWhite = True
End With
ActiveSheet.Range("B32").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
' -----------------------------------------------------
Geht das eleganter?
Auch meine Erfassung des Teils des Tabellenkopfes mit Gewinnung der Daten
aus dem selektierten Bereich kann sicher verbessert werden.
Hans
<Excel 07>
für meine Printroutine markiere ich den Bereich einer großen Tabelle und
drücke dann einen Button.
Das erstellt ein Printarea des selektierten Bereichs und startet die
Druckvorschau.
Daraus starte ich dann den Ausdruck.
Alles prima soweit.
Nun fehlt mir aber der Tabellenkopf.
Daher habe ich in der Breite des selektierten Zellbereichs die Spalten
übernommen und möchte die Zeilen 1-8 davon mitdrucken.
Auch das klappt noch, aber!
Statt einer Seite (ist so eingestellt) werden zwei gedruckt. Sofern zwischen
Kopf und Selektion nicht mitgedruckte Bereiche liegen.
Ich hab die 2 Bereiche mit Union() verbunden.
Workaround wäre es, die beiden Bereiche auf ein Hilfsblatt untereinander zu
kopieren und dann erst als Printarea zu erfassen.
Najaaa.
Hier mal der komplette Code:
' -----------------------------------------------------
Sub Druckbereich_wahl()
Dim rngKopf As Range
If Len(Selection.Address) < 6 Then Exit Sub
Set rngKopf = Range(Cells(1, Selection.Cells(Selection.Rows.Count, 1). _
End(xlUp).Column), Cells(8, Selection.Cells(Selection.Rows.Count, 1). _
End(xlUp).Column + Selection.Columns.Count - 1))
Set rngKopf = Union(rngKopf, Selection.Cells)
rngKopf.Select
With ActiveSheet.PageSetup
.PrintArea = Selection.Address
.Orientation = IIf(Selection.Width > Selection.Height, _
xlLandscape, xlPortrait)
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
.BlackAndWhite = True
End With
ActiveSheet.Range("B32").Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub
' -----------------------------------------------------
Geht das eleganter?
Auch meine Erfassung des Teils des Tabellenkopfes mit Gewinnung der Daten
aus dem selektierten Bereich kann sicher verbessert werden.
Hans