mit Unterstützung von Hajo konnte ich die folgende Routine "basteln":
Private Sub UserForm_Initialize()
Dim WsTabelle As Worksheet
Application.EnableCancelKey = xlInterrupt
For Each WsTabelle In Sheets
If WsTabelle.Visible = True Then ListBox1.AddItem WsTabelle.Name
Next WsTabelle
End Sub
Private Sub CommandButton1_Click()
Dim LoI As Long
Dim MEINDRUCKER
Dim Druckerwahl
MEINDRUCKER = Application.ActivePrinter
If drucker.Value = True Then 'Druckerauswahl wenn gewünscht..
Druckerwahl = Application.Dialogs(xlDialogPrinterSetup).Show
End If
For LoI = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(LoI) Then
Unload Me
Worksheets(ListBox1.List(LoI, 0)).PrintOut , Preview:=vorschau.Value
End If
Next LoI
Application.ActivePrinter = MEINDRUCKER
' Drucker auf Standard zurücksetzten
Sheets(2).Select
End Sub
Sinn und Zweck der Übung ist das aktuelle Einlesen der Tabellenblätter in eine Listbox um sie zum Ausdrucken zu selektieren.
Mein Problem: Um Papier zu sparen würde ich gerne (vor der ersten Druckansicht) die Gesamtanzahl der Druckseiten in einer Msg angesagt bekommen.
Vielen Dank schon jetzt für Eure Ideen.....
Viele Grüße aus FFM
Matthias