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

Nur ausgewählte Tabellenblätter mit Inhalt drucken

Nur ausgewählte Tabellenblätter mit Inhalt drucken
05.02.2015 14:45:31
Chris
Hallo!
Es geht um eine Datei, in der viele verschiedene Tabellenblätter aufgelistet sind.
Aus einer Tabelle werden Teilnehmer (max. 20) aufgelistet (inkl. allen persönlichen Daten). Nun erstellt Excel, wenn bestimmte Felder ausgefüllt sind, Urkunden für jeden einzelnen Teilnehmer (1 Teilnehmer, 1 Tabellenblatt), die ich dann drucken möchte.
Die Urkunden-Formulare sind, wenn kein Teilnehmer hinterlegt ist, völlig leer und ohne Inhalt.
Also:
Tabellenblatt: Teilnehmer (Daten)
Tabellenblatt: TN 1
Tabellenblatt: TN 2
Tabellenblatt: TN 3
...
Tabellenblatt: TN 20
Nun habe ich aber nicht immer 20 Teilnehmer, sondern manchmal nur 12, 17 oder 19 (Beispiel).
Jetzt möchte nur auf einen Button drücken und Excel druckt exakt die Anzahl der ausgefüllten Urkunden aus.
Ich habe schon einiges hin und her probiert mit Makros, leider komme ich immer nur so weit, dass er auf Button-Klick alle 20 Urkunden druckt - auch die weißen.
Kann mir jemand helfen?
Danke!

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur ausgewählte Tabellenblätter mit Inhalt drucken
05.02.2015 15:34:52
fcs
Hallo Chris,
deine Blätetr sind wahrscheinlich nicht leer, sondern es sind Formeln mit Ergebnis "" vorhanden.
Du muss in dein Druckmakro Prüfungen auf den Inhalt einer Zelle einbauen, bei den zu druckenden Blättern immer einne Inhalt anzeigt.
Gruß
Franz
Sub DruckenUrkunde()
Dim wks As Worksheet
If MsgBox("Urkunden drucken?" & vbLf & vbLf _
& "Drucker: " & Application.ActivePrinter, vbQuestion + vbOKCancel) = vbCancel Then Exit  _
Sub
For Each wks In ActiveWorkbook.Worksheets
If Left(wks.Name, 2) = "TN" And wks.Range("C4").Value  "" Then 'Zelle ggf. anpassen _
- diese Zelle muss auf allen Blätter, die gedruckt werden sollen, ausgefüllt sein.
wks.PrintOut
End If
Next
End Sub
Sub DruckenUrkunde_ein_Druckjob()
Dim wks As Worksheet
Dim arrBlatt() As String, intBlatt As Integer
If MsgBox("Urkunden drucken?" & vbLf & vbLf _
& "Drucker: " & Application.ActivePrinter, vbQuestion + vbOKCancel) = vbCancel Then Exit  _
Sub
For Each wks In ActiveWorkbook.Worksheets
If Left(wks.Name, 2) = "TN" And wks.Range("C4").Value  "" Then 'Zelle ggf. anpassen _
- diese Zelle muss auf allen Blätter, die gedruckt werden sollen, ausgefüllt sein.
intBlatt = intBlatt + 1
ReDim Preserve arrBlatt(1 To intBlatt)
arrBlatt(intBlatt) = wks.Name
End If
Next
If intBlatt > 0 Then
ActiveWorkbook.Sheets(arrBlatt).PrintOut
End If
End Sub

Anzeige
AW: Nur ausgewählte Tabellenblätter mit Inhalt drucken
05.02.2015 18:23:23
Chris
Hallo Franz,
vielen lieben Dank für die schnelle Rückmeldung.
Ja du hast recht, leer sind sie nicht, sondern eine Formel zeigt "" an.
Habe dein Makro eingesetzt, Zelle angepasst, funktioniert! Danke!
Ich habe das Makro für einen Druckjob verwendet.
2 kleine Veränderungen wären mir aber noch ganz lieb:
1. Wenn ich auf den Button drücke soll nicht noch mal gefragt werden, ob gedruckt werden soll.
2. Ich möchte den Drucker manuell auswählen können und nicht den Standarddrucker nutzen.
Habe es schon mit dem hier probiert:
Application.Dialogs(xlDialogPrint).Show

allerdings führt mich das nicht zum gewünschten Erfolg.
Gibt es da eine einfache Lösung?
Vielen Dank.

Anzeige
AW: Nur ausgewählte Tabellenblätter mit Inhalt drucken
06.02.2015 07:32:53
fcs
Hallo Chris,
hier das Makro mit Anpassungen, so das Druckersetup-Dialog statt MsgBox angezeigt wird.
Gruß
Franz
Sub DruckenUrkunde_ein_Druckjob()
Dim wks As Worksheet
Dim arrBlatt() As String, intBlatt As Integer
On Error GoTo Beenden
If Application.Dialogs(xlDialogPrinterSetup).Show = False Then GoTo Beenden
For Each wks In ActiveWorkbook.Worksheets
If Left(wks.Name, 2) = "TN" And wks.Range("C4").Value  "" Then 'Zelle ggf. anpassen _
- diese Zelle muss auf allen Blätter, die gedruckt werden sollen, ausgefüllt sein.
intBlatt = intBlatt + 1
ReDim Preserve arrBlatt(1 To intBlatt)
arrBlatt(intBlatt) = wks.Name
End If
Next
If intBlatt > 0 Then
ActiveWorkbook.Sheets(arrBlatt).PrintOut
End If
Beenden:
With Err
Select Case .Number
Case 0 'alles OK
Case 1004
'MsgBox "Druckvorgang wurde abgebrochen"
Case Else
MsgBox "Fehler.Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
AW: Nur ausgewählte Tabellenblätter mit Inhalt drucken
06.02.2015 11:18:48
Chris
Hallo Franz,
funktioniert alles, vielen Dank!!!
Grüße!

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige