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

BeforePrint bzw. Printout Merkwürdigkeit

BeforePrint bzw. Printout Merkwürdigkeit
13.05.2005 21:16:28
Heiko
Hallo Leute,
kann mir mal einer erklären warum sich meine Beispielmappe so komisch verhält ?!
Wenn ich in EXCEL ganz normal auf Drucken drücke dann wird über den Code im Workbook_BeforeClose der Kopf und Fusstext angepasst. Im Debugger in Einzelschritt wird der gesamte Code in Workbook_BeforeClose durchlaufen und mir zuletzt der Name der gerade bearbeiteten Tabelle ausgegeben.
Wenn ich nun aber über den Button in Tabelle 1 das Userform aufrufe und da in der Listbox eine Tabelle zum drucken auswähle und dann auf den Drucken Button im Userform drücke passiert folgendes.
Der Code hinter dem Button startet einen Ausdruck des gewählten Tabellenblattes über .Printout.
Damit wird ja nun auch wieder die Workbook_BeforeClose Routine durchlaufen.
Soweit so gut, aber es werden die Kopf und Fusstexte nicht verändert. Obwohl im Debugger in Einzelschritt wieder der gesamte Code in Workbook_BeforeClose durchlaufen wird und mir zuletzt der Name der gerade bearbeiteten Tabelle ausgegeben.
https://www.herber.de/bbs/user/22597.xls

Was ist der Unterschied zwischen Printout und drucken über den normalen Weg.
Danke schon mal für Ideen und Tipps,
Gruß Heiko

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: BeforePrint bzw. Printout Merkwürdigkeit
13.05.2005 22:01:30
Bert
Hi,
in deiner Mappe gibts kein Workbook_before_close, kann also irgendwas mit deiner
Beschreibung nicht stimmen.
mfg Bert
Workbook_BeforePrint statt _BeforeClose
13.05.2005 22:29:02
Heiko
Hallo Bert,
danke für den Tipp.
Ich meine natürlich (immer) Workbook_BeforePrint und nicht BeforeClose, also dieses SUB.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim wks As Worksheet
For Each wks In ActiveWorkbook.Windows(1).SelectedSheets
wks.PageSetup.RightFooter = "Test"
wks.PageSetup.CenterFooter = "Test"
wks.PageSetup.LeftFooter = "Test"
wks.PageSetup.CenterHeader = "Test"
MsgBox wks.Name
Next wks
' Cancel = True
End Sub

Gruß Heiko
Anzeige
AW: Workbook_BeforePrint statt _BeforeClose
13.05.2005 22:37:54
Bert
Hi,
hab ich mir schon gedacht. Wenn du vom userform aus druckst, wird immer nur ein
Blatt gedruckt, da die Eigenschaft Multiselect auf single steht, oder selektierst
vorm Anzeigen des userforms alle Blätter von Hand?
mfg Bert
AW: Workbook_BeforePrint statt _BeforeClose
13.05.2005 23:04:45
Heiko
Hallo Bert,
das ist natürlich nur ein kleiner Teil des Programmes. Im echten kann man im Userform per Multiselect in der Listbox auch mehrere Blätter ausdrucken. Habe die Mappe halt soweit wie möglich geschrumpft um hier nicht zuviel Code einzustellen durch den sich die Helfer durcharbeiten müßten.
Multiselect ist aber nicht mein Problem, sondern die Frage warum werden im BeforePrint Sub die Pagesetup Eigenschaften geändert wenn man auf das Drucken Icon in Excel drückt, aber nicht wenn man auf den Button im Userform drückt. Obwohl in beiden Fällen der Code in BeforePrint (im Debbuger Fenster selbst gesehen) durchlaufen wird.
Schon mal danke für deine Antworten, aber hast du noch nen Tipp bezüglich des verschiedenen Verhaltens wenn der Code in BeforPrint durchlaufen wird ?
Gruß Heiko
Anzeige
AW: Workbook_BeforePrint statt _BeforeClose
13.05.2005 23:51:29
Bert
Hi,
du hast die Bedingung For Each wks In ActiveWorkbook.Windows(1).SelectedSheets
Wenn du vom Userform aus druckst ist nur eine Tabelle ausgewählt und die muss
ja nicht zwingend die aktive sein, also ist die bedingung nicht erfüllt.
mfg Bert
AW: Workbook_BeforePrint statt _BeforeClose
14.05.2005 09:24:36
Heiko
Hallo Bert,
das ist ja alles richtig was du sagst, aber warum wird dann der Code der wks For Each Schleife im Debugger durchlaufen und mir sogar der Name der gewählten Tabelle in der MsgBox ausgegeben. Im Lokalfenster wird für wks Worksheet/Tabelle1 angezeigt.
Hast du mal den Text (Test) im BeforePrint verändert und mal testweise auf Drucken im Userform gedrückt. (Brauchst dazu nur Tabelle1 in der Listbox auswählen.)
Wenn du dann denn Code in Einzelschritt (F8) durchläufst wird der Code mit den PageSetup Zeilen durchlaufen, aber die Fuss und Kopftexte nicht verändert.
Drückst du auf drucken in EXCEL (Printer ICON) passiert genau das gleiche, der Code wird durchlaufen, aber die Texte werden verändert.
WARUM ?
Vielleicht bin ich ja auch zu blöd und seh den Wald vor lauter Bäumen nicht.
Vielen Dank für deine Antworten und Tipps, vielleicht hast du ja noch ne Idee!
Gruß Heiko
Anzeige

90 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige