3.7k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Spezies!

Ich habe eine Tabelle zeilenweise gruppiert! Diese Gruppen wähle ich über einen Filter aus, so dass ich wirklich nur gewollte Bereiche sichtbar mache. Diese Bereiche möchte ich nun drucken. Leider bekomme ich, wenn ich z.B. einen Teil aus der Mitte drucken möchte, Leerseiten vorher bzw. nachher.

Lässt sich das irgendwie vermeiden.

Zur Info: Ich habe für die Spalten-Beschriftung Wiederholungszeilen oberhalb der Gruppierungen!

Ich hoffe, Euch fällt dazu was ein!

Gruss

Ines

20 Antworten

0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Ines,

ich habe das Makro getestet und bei mir lief es einwandfrei. Ich habe leider keine Ahnung, warum es in deiner Mappe zu einem Fehler kommt.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.!

Wenn ich das Makro bei Filter auf 2250 Schritt für Schritt in der Seitenumbruchvorschau laufen lasse, dann sehe ich an dieser Stelle...

'Alle Seitenwechsel zurücksetzen
ActiveSheet.ResetAllPageBreaks

... wie vor dem Drucken der Seitenwechsel sich verändert!
Der alte Umbruch soll jedoch erhalten bleiben!!!

Vielleicht kannst Du Dir das so noch mal ansehen!

Gruss
Ines
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Ines,

wenn deine Orginaldatei keine vertraulichen Daten erhält, dann lade sie mal hoch und poste hier den Link. Ansonsten melde dich hier an (ist kostenlos) und ich lasse dir über den Pager eine E-Mail-Adresse zukommen, an die du die Datei senden kannst.

Gruß

M.O.
0 Punkte
Beantwortet von
Hi!

Der Umbruchfehler taucht auch in der Musterdatei, die hier steht

https://www.wuala.com/ihk121/download?key=rpKhWDjZBJgx

auf!

Gruss
Ines
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Ines,

Problem erkannt. Da muss aber erst mal etwas tüfteln :-).

Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Ines,

probier mal das folgende Makro aus:

Sub Drucken_neu()

Dim a, az, i As Integer
Dim Seitenwechsel() As Integer

'Anzahl der Seitenwechsel auf dem Blatt ermitteln
az = ActiveSheet.HPageBreaks.Count

'Array für Seitenwechsel neu dimensionieren
ReDim Preserve Seitenwechsel(1 To az, 2)

'Seitenwechsel werden eingelesen
For i = 1 To az
Seitenwechsel(i, 1) = ActiveSheet.HPageBreaks(i).Location.Row

If Rows(ActiveSheet.HPageBreaks(i).Location.Row - 1).EntireRow.Hidden = True Then
Seitenwechsel(i, 2) = 0 'Marker für Seitenwechsel im ausgeblendeten Bereich
Else
Seitenwechsel(i, 2) = 1 'Marker für Seitenwechsel im eingeblendeten Bereich
End If

Next i

'Alle Seitenwechsel zurücksetzen
ActiveSheet.ResetAllPageBreaks

'Seitenwechsel im eingeblendeten Bereich setzen
For i = 1 To az
If Seitenwechsel(i, 2) = 1 Then ActiveSheet.Rows(Seitenwechsel(i, 1)).PageBreak = xlPageBreakManual
Next i

'Seite drucken
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True

'Seitenwechsel im ausgeblendeten Bereich setzen
For i = 1 To az
If Seitenwechsel(i, 2) = 0 Then ActiveSheet.Rows(Seitenwechsel(i, 1)).PageBreak = xlPageBreakManual
Next i

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.!

Super, so habe ich mir das vorgestellt!

Vielen Dank für Deine Mühe!

Schöne Restwoche noch...

LG

Ines
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Ines,

danke für die Rückmeldung und auch dir noch eine schöne Woche.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.!

Ich doch noch mal!

Für die Seitenwechsel der Höhe klappt es ja einwandfrei!
Wenn ich aber noch Spalten hinzufüge, bekomme ich neue Seiten in der Breite!

Am Skript kann ich aber nicht erkennen, warum dies so ist bzw. an welcher Stelle ich eingreifen muss.

Gruss

Ines!
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Ines,

der Code liest nur die horizontalen Seitenwechsel aus. Bei deiner Beispieltabelle war ein Druckbereich definiert, der durch den Code aber nicht beeinflusst wird. Du musst ggf. deinen Druckbereich anpassen.
(Ich hoffe, ich habe dein Problem richtig verstanden)

Gruß

M.O.
...