Hallo zusammen,
Ich bin ein absoluter VBA- Neuling, finde aber mittlerweile viel Freude daran.
Allerdings läuft bei mir alles etwas "autodidaktisch", also bitte ich um verzeihung wenn meine Codes nicht der guten Ordnung entsprechen. Für Verbesserungsvorschläge bin ich offen!
Nun zu meinem Problem:
Ich habe eine Arbeitsmappe mit 5 Tabellenblättern, die ich über einen Commandbutton drucken möchte. Folgende Prozeduren sollen passieren:
- Drucker auswählen
- Von den ersten 3 Blättern sollen Leerzeilen ausgeblendet werden
- alle 5 Blätter drucken
-Leerzeilen wieder einblenden
- zum ersten Blatt gehen
Nun passiert es leider, dass bei dem Blatt, dass ich als 2. von den 3 wo die Zeilen ausgeblendet werden sollen, diese Ausblendung nicht stattfindet. tausche ich die Blätter in der reihenfolge, also setze ich den Code von der ersten Mappe an die 2.Stelle, wirde dieser nicht bearbeitet.
Auf dem anderen Wege werden bei einem der Blätter, wo Zeilen ausgeblendet wurden, diese nicht wieder eingeblendet.
Ich verzweifle hier echt und hoffe, dass mir jemand einen Tipp geben kann. Wie gesagt, bin absoluter Neuling, also habt ein Nachsehen!
Hier der Code:
Sub Komplette_Mappe_Drucken()
'Fenster Druckerwahl einblenden
Application.ScreenUpdating = False
Dim Druckerwahl
Dim rng As Range
Dim n As Integer
Druckerwahl = Application.Dialogs(xlDialogPrinterSetup).Show
If Druckerwahl = False Then Exit Sub
'Mappe "Barauslagen Proviant" auswählen
Sheets("Barauslagen Proviant").Select
'Range festlegen, der ausgeblendet werden soll (Spalte B)
Set rng = Range("B8:B49")
Application.ScreenUpdating = False
'Leere Zeilen in Spalte B suchen und komplette Zeilen ausblenden
If Not blnHidden Then
blnHidden = True
For n = 1 To rng.Rows.Count
If Application.CountA(rng.Rows(n)) = 0 Then rng.Rows(n).Hidden = blnHidden
Next
For n = 1 To rng.Columns.Count
If Application.CountA(rng.Columns(n)) = 0 Then rng.Columns(n).Hidden = blnHidden
Next
Else
blnHidden = False
rng.Rows.Hidden = blnHidden
rng.Columns.Hidden = blnHidden
End If
'Mappe "Barauslagen Schiff" auswählen
Sheets("Barauslagen Schiff").Select
'Range festlegen, der ausgeblendet werden soll (Spalte B)
Set rng = Range("B8:B49")
Application.ScreenUpdating = False
'Leere Zeilen in Spalte B suchen und komplette Zeilen ausblenden
If Not blnHidden Then
blnHidden = True
For n = 1 To rng.Rows.Count
If Application.CountA(rng.Rows(n)) = 0 Then rng.Rows(n).Hidden = blnHidden
Next
For n = 1 To rng.Columns.Count
If Application.CountA(rng.Columns(n)) = 0 Then rng.Columns(n).Hidden = blnHidden
Next
Else
blnHidden = False
rng.Rows.Hidden = blnHidden
rng.Columns.Hidden = blnHidden
End If
'Mappe "Kasse" auswählen
Sheets("Kasse").Select
'Range festlegen, der ausgeblendet werden soll (Spalte E)
Set rng = Range("E23:E38")
Application.ScreenUpdating = False
'Leere Zeilen in Spalte B suchen und komplette Zeilen ausblenden
If Not blnHidden Then
blnHidden = True
For n = 1 To rng.Rows.Count
If Application.CountA(rng.Rows(n)) = 0 Then rng.Rows(n).Hidden = blnHidden
Next
For n = 1 To rng.Columns.Count
If Application.CountA(rng.Columns(n)) = 0 Then rng.Columns(n).Hidden = blnHidden
Next
Else
blnHidden = False
rng.Rows.Hidden = blnHidden
rng.Columns.Hidden = blnHidden
End If
'Alle Blätter auswählen
Sheets().Select
'Ausgewählte Blätter drucken
ActiveWindow.SelectedSheets.PrintOut copies:=1, collate:=True
'Ausgeblendete Zeilen wieder einblenden
Sheets().Select
Rows.Hidden = False
'Zurück zu Blatt "Kasse" gehen
Sheets("Kasse").Select
Application.ScreenUpdating = True
End Sub
|