Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
612to616
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
612to616
612to616
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Anzahl Druckseiten nach Selektion aus Listbox

Anzahl Druckseiten nach Selektion aus Listbox
19.05.2005 11:04:08
Matthias_FFM
Guten Tag Excel-Forum,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Lösung gefunden.....
19.05.2005 12:29:20
Matthias_FFM
Die Lösung (geht bestimmt besser, aber immerhin...)
Auszug aus der Routine....
' Anzahl der Seiten ermitteln
For LoI = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(LoI) Then
Unload Me
Worksheets(ListBox1.List(LoI, 0)).Select
i = ExecuteExcel4Macro("Get.Document(50)")
summe = summe + i
End If
Next LoI
result = MsgBox(" Anzahl Seiten - " & summe & " -", 1)
If result = 2 Then GoTo ende:
Rest der Routine.....
Gruß aus FFM
Matthias
Anzeige
AW: Anzahl Druckseiten nach Selektion aus Listbox
19.05.2005 13:22:55
Heiko
Hallo Matthias,
Damit du bei ExecuteExcel4Macro nicht immer Selecten mußt, kann man auch den Tabellennamen übergeben. Oberes Makro, wie man die Funktion SheetsSeitenanzahl in einer Schleife aufrufen kann und unten dann die Function selbst. Übrigens habe ich festgestellt das ExecuteExcel4Macro("Get.Document(50... manchmal andere Seitenzahlen ausgibt als die die man in EXCEL in der Seitenvorschau angezeigt bekommt, also nicht 100%ig drauf verlassen.

Private Sub CommandButton2_Click()
Dim intSeiten As Integer: intSeiten = 0
Dim wks As Worksheet
For Each wks In ThisWorkbook.Windows(1).SelectedSheets
intSeiten = intSeiten + SheetsSeitenanzahl(wks)
Next wks
MsgBox intSeiten
End Sub

Function SheetsSeitenanzahl(wks As Worksheet) As Integer
Dim strSheetsName As String
strSheetsName = CStr(wks.Name)
SheetsSeitenanzahl = ExecuteExcel4Macro("Get.Document(50, " & """" & strSheetsName & """" & ")")
End Function
Im Archiv findest du übrigens noch ne Antwort von mir zu deinen PrintOut, BeforePrint Problem, falls du sie noch nicht gelesen hast.
Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige