Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
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

VBA - Druck mehrerer selektierter Reiter

VBA - Druck mehrerer selektierter Reiter
27.01.2017 09:28:37
Gecko
Hi,
ich möchte in einem Dokument auf der Seite Grunddaten über einen Button verschiedene Reiter ausdrucken lassen. Es werden Reiter ausgeblendet, wenn in einer bestimmten Zelle "NEIN" steht. Dieses geschieht auch im Hintergrund, da "Blattregister anzeigen" in den Optionen abgewählt wurde.
Mein Problem ist es, dass ich die Reiter vorher durchsuchen lasse, ob diese "angezeigt" werden sollen (da Application.ScreenUpdating = False, werden die ja nicht wirklich angezeigt) und danach nur die Reiter ausgedruckt werden sollen, die noch "sichtbar" sind. Dieses dann nicht jeweils mit einem Druck, sondern als ein Gesamtdruck.
Hier mein Makro, was auch ganz gut funktioniert, nur wir immer jeder Reiter einzeln ausgedruckt und nicht ein Gesamtdruck von z.B. 16 Reitern. Im unteren Bereich mit ' seht ihr was ich bisher ausprobiert habe.
Sub Drucken()
Dim i As Integer
Application.ScreenUpdating = False
For i = 4 To Sheets.Count
Sheets(i).Visible = True ' damit erstmal wieder alle Reiter eingeblendet werden
Next
For i = 4 To Sheets.Count
If Sheets(i).Cells(2, 21) = "NEIN" Then
Sheets(i).Visible = False ' damit die überflüssigen Reiter ausgeblendet werden
End If
Next
For i = 4 To Sheets.Count
If Sheets(i).Visible = True Then
Sheets(i).Select ' damit die richtigen Reiter ausgewählt werden
' SelectedSheets.PrintOut
' Selection.PrintOut
' Application.Dialogs(8).Show
' Sheets(i).PrintOut ' preview:=True
End If
Next
End Sub

Ich hoffe, einer von euch hat noch ne Idee dazu :-)
Danke schonmal vorab
Gecko

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Druck mehrerer selektierter Reiter
27.01.2017 09:47:25
Gecko
Axo,
mit Arry funktioniert es irgendwie auch nicht, da sich die Reiter, die ausgedruckt werden sollen, von Zeit zur Zeit ändern
AW: VBA - Druck mehrerer selektierter Reiter
29.01.2017 17:38:11
Gecko
Ich nehme auch erstmal eure Gedanken auf und finde damit vielleicht eine Lösung, ich komme einfach nicht weiter
VBA - Druck mehrerer selektierter Reiter
29.01.2017 19:19:52
Michael
Hi,
das könnte in die richtige Richtung gehen:
Sub Drucken()
Dim i As Long
Dim sichtbar As Boolean
Dim zuDrucken As String
Dim arrDrucken As Variant
For i = 4 To Sheets.Count
If Sheets(i).Range("U2") = "NEIN" Then
sichtbar = False
Else
sichtbar = True
zuDrucken = zuDrucken & Sheets(i).Name & "?"
End If
If sichtbar  Sheets(i).Visible Then Sheets(i).Visible = sichtbar
Next
zuDrucken = Left(zuDrucken, Len(zuDrucken) - 1) ' letztes "?" weg
arrDrucken = Split(zuDrucken, "?")              ' in ein "Array" überführen
If UBound(arrDrucken) 

Eine Schleife genügt völlig: zuerst wird U2 ausgewertet, und nur wenn das .visible des Blatte nicht mit dem Ergebnis übereinstimmt, wird es neu gesetzt - keine unnötigen "Aktionen".
Im gleichen Zug werden die "sichtbaren" Blattnamen in einen String gesteckt, mit "?" als Trennzeichen (? dürfen in Blattnamen nicht vorkommen, deshalb bietet sich das an), das dann wiederum bei der Konvertierung in ein Array mittels split() verwendet wird.
Schöne Grüße,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige