Druckvorschau als Code

Hallo liebe Excel-Freund, hallo Reinhard, der mir schon so oft geholfen hat. ich habe einen Code, der vor den Druck alle Leerzeilen rausnimmt, und dann das Arbeitsblatt druckt. Ich möchte aber vor den Druck einen DruckVorschau „sehen“ und dann noch wählen kann ob ich drucken oder abbrechen möchte.
anbei der Code.
Kann da mir ein „Könner“ helfen???

Sub Drucken_ohne_Leerzeile()
'die Zeilen werden ausgeblendet, Seiten gedruckt und wieder eingeblendet
'Blattschutz aufheben
ActiveSheet.Unprotect
Dim Frage
Frage = MsgBox(„Sollen die Blätter ohne Leerzeilen gedruckt werden?“, vbYesNo)
If Frage = vbYes Then
MsgBox „Aktion wird ausgeführt“
'ab hier eigentliches Programm

Dim LoI As Long
Dim LoLetzte As Long
'unabhängig von Excelversion für Spalte H(8)
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 8)), Cells(Rows.Count, 8).End(xlUp).Row, Rows.Count)
For LoI = LoLetzte To 1 Step -1
’ If Cells(LoI, 8) = Empty Then Rows(LoI).EntireRow.Hidden = True
’ If Cells(LoI, 8) Empty Then Rows(LoI).EntireRow.Hidden = True
’ If Cells(LoI, 8) = „0,00“ Or Empty Then Rows(LoI).EntireRow.Hidden = True
’ If Cells(LoI, 8) = „0,00“ Then Rows(LoI).EntireRow.Hidden = True
If Cells(LoI, 8) = 0 Then Rows(LoI).EntireRow.Hidden = True
'??? ActiveSheet.PrintOut = „$C$1:blush:I$2“
Next LoI
'hier wird gedruckt
'=======> hier sollte die Druckvorschau sein

geholfen hat. ich habe einen Code, der vor den Druck alle
Leerzeilen rausnimmt, und dann das Arbeitsblatt druckt. Ich
möchte aber vor den Druck einen DruckVorschau „sehen“ und dann
noch wählen kann ob ich drucken oder abbrechen möchte.
anbei der Code.

Hi M.,

Option Explicit

Sub Drucken\_ohne\_Leerzeile()
'die Zeilen werden ausgeblendet, Seiten gedruckt und wieder eingeblendet
Dim Frage As Long, LoI As Long, LoLetzte As Long
'Blattschutz aufheben
ActiveSheet.Unprotect
Frage = MsgBox("Sollen die Blätter ohne Leerzeilen gedruckt werden?", vbYesNo)
If Frage = vbYes Then
 MsgBox "Aktion wird ausgeführt"
 'ab hier eigentliches Programm
 'unabhängig von Excelversion für Spalte H(8)
 LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 8)), Cells(Rows.Count, 8).End(xlUp).Row, Rows.Count)
 For LoI = LoLetzte To 1 Step -1
 ' If Cells(LoI, 8) = Empty Then Rows(LoI).EntireRow.Hidden = True
 ' If Cells(LoI, 8) Empty Then Rows(LoI).EntireRow.Hidden = True
 ' If Cells(LoI, 8) = "0,00" Or Empty Then Rows(LoI).EntireRow.Hidden = True
 ' If Cells(LoI, 8) = "0,00" Then Rows(LoI).EntireRow.Hidden = True
 If Cells(LoI, 8) = 0 Then Rows(LoI).EntireRow.Hidden = True
 '??? ActiveSheet.PrintOut = "$C$1:blush:I$2"
 Next LoI
 'hier wird gedruckt
 '=======\> hier sollte die Druckvorschau sein 

Gruß
Reinhard

Hallo Reinhard, wieder mal lieben Dank, Code läuft.
Ich hoffe ja, das auch anderen Excelfreunde mit meine Fragen und deinen Antworten etwas anfangen können

Hallo Reinhard,
ich habe den Code jetzt mal ausprobiert, leider ist da noch ein „Knackpunkt“- und zwar wenn ich den Code bei der Frage ob ich nach der Vorschau drucken will, NEIN sage, gibt der Code nicht die Gruppierung wieder in den „alten“ Zustand zurück.
Kannst du da noch mal helfen?

Gruss Volker

ich habe den Code jetzt mal ausprobiert, leider ist da noch
ein „Knackpunkt“- und zwar wenn ich den Code bei der Frage ob
ich nach der Vorschau drucken will, NEIN sage, gibt der Code
nicht die Gruppierung wieder in den „alten“ Zustand zurück.
Kannst du da noch mal helfen?

Hi Volker,

ich weiß nicht ob
ActiveSheet.Outline.ShowLevels RowLevels:=1
der alte oder der neue Zustand ist.
Ich nehme an es sit der neue Zustand, dann kenne ich den alten nicht.

Zeichne mal ein Makro auf währende du manuell den neuen Zustand einstellst, dann den alten wieder herstellst und zeige den Code.

Gruß
Reinhard