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

Hilfe beim abändern des Makros

Hilfe beim abändern des Makros
Josef_T
Guten Abend zusammen,
kann mir bitte jemand einen Tip geben, was ich in dem u. sth. Makro ändern oder ergänzen muß, um folgendes zu erreichen:
Wenn das Programm gestartet ist, klicke ich auf das Druckersymbol, dann soll mir die Druckerauswahl angezeigt werden, dann die Abfrage ob das aktive TB gedruckt werden soll, was ich mit Ja/Nein auslösen kann. Bis dahin funktioniert alles perfekt.
Wenn ich den Druckvorgang mit Ja bestätige, wird das TB auch tadellos ausgedruckt, aber nach dem Ausdruck habe ich das Optionsblatt zu Verfügung, wo ich die Anzahl der Ausdrucke, Vorschau ect. einstellen kann. Genau das aber hätte ich gerne vor dem Ausdruck.
Kann mir da jemand von Euch Profis helfen?
Danke schon mal
Gruß
Josef
Dim bolCode As Boolean
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Not bolCode Then
bolCode = True
If Application.Dialogs(xlDialogPrinterSetup).Show Then
With ActiveSheet
ActiveSheet.Unprotect Password:=""
.Columns("B:C").Hidden = True
If MsgBox("...soll das Blatt gedruckt werden?", vbQuestion + vbYesNo) = vbYes Then . _
PrintOut
.Columns("B:C").Hidden = False
End With
Else
Cancel = True
End If
bolCode = False
End If
ActiveSheet.Protect Password:=""
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Hilfe beim abändern des Makros
20.05.2012 21:48:15
Daniel
HI
1.
auch nach dem Drucken mit .PrintOut musst du Cancel = True setzen, da du dich ja noch in der "BeforePrint"-Phase befindest, sonst wird ja 2x gedruckt.
2. wenn du druckst, rufst du das BeforePrint-Makro ein zweites mal auf, wenns dumm läuft, verfängst du dich in einer Endlosschleife.
Daher musst du mit Application.EnableEvents = False vor dem .PrintOut die automatische Ausführung der Events deaktivieren, nach dem .PrintOut musst du sie mit Application.EnableEvents = True wieder einschalten.
Gruß Daniel
AW: Hilfe beim abändern des Makros
20.05.2012 22:17:39
Josef_T
Hallo Daniel,
Danke für Deine Hilfe.
itz, hat das Makro so abgeändert, dass alles einwandfrei läuft.
Gruß
Josef
Anzeige
AW: Hilfe beim abändern des Makros
20.05.2012 22:05:32
itz
hallo Josef,
Das Printout gehört aus dieser Prozedur raus. Ob gedruckt wird oder nicht wird mit dem Cancel gesteuert:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Not bolCode Then
bolCode = True
If Application.Dialogs(xlDialogPrinterSetup).Show Then
With ActiveSheet
ActiveSheet.Unprotect Password:=""
.Columns("B:C").Hidden = True
If MsgBox("...soll das Blatt gedruckt werden?", vbQuestion + vbYesNo) = vbYes Then
Cancel = False
Else
Cancel = True
End If
.Columns("B:C").Hidden = False
End With
Else
Cancel = True
End If
bolCode = False
End If
ActiveSheet.Protect Password:=""
End Sub

Anzeige
AW: Hilfe beim abändern des Makros
20.05.2012 22:13:13
Josef_T
Guten Abend itz,
genau so sollte der Ablauf sein. Jetzt funktioniert alles perfekt.
Herzlichen Dank für Deine Hilfe
Gruß
Josef
AW: Hilfe beim abändern des Makros
20.05.2012 22:51:33
itz
Hallo Josef,
aber Daniel hat recht, in diesem Fall soll ja offensichtlich die Spalte B und C nicht gedruckt werden, aber danach wieder sichtbar sein. Deshalb also so wie Daniel sagt.
Enableevents ist heikel, wenn ein Problem auftritt, deswegen die Fehlerroutine am Ende.
Private Sub Workbook_BeforePrint(Cancel As Boolean)
On Error GoTo Fehler
If Not bolCode Then
bolCode = True
If Application.Dialogs(xlDialogPrinterSetup).Show Then
With ActiveSheet
ActiveSheet.Unprotect Password:=""
.Columns("B:C").Hidden = True
Application.EnableEvents = False
If MsgBox("...soll das Blatt gedruckt werden?", vbQuestion + vbYesNo) = vbYes Then  _
PrintOut
Application.EnableEvents = True
.Columns("B:C").Hidden = False
End With
End If
bolCode = False
End If
ActiveSheet.Protect Password:=""
Cancel = True
Exit Sub
Fehler:
Application.EnableEvents = True
End Sub

liebe Grüße
itz
Anzeige
AW: Hilfe beim abändern des Makros
21.05.2012 07:52:47
Josef_T
Hallo itz,
Dein korrigiertes Makro läuft nun auch in der Original-Datei, einfach Super.
Herzlichen Dank für Deine zusätzliche Hilfe!
Gruß
Josef
AW: Hilfe beim abändern des Makros
20.05.2012 22:13:15
Daniel
hi
doch, er muss innerhalb der Prozedur drucken weil er ja nach dem Drucken die Spalten wieder einblenden will.
das geht nicht anders, weil es noch kein AfterPrint-Event gibt, mitdem er das erledigen könnte.
Gruß Daniel
AW: Hilfe beim abändern des Makros
21.05.2012 07:46:38
Josef_T
Hallo Daniel,
möchte mich für Deine zusätzliche Hilfe bedanken, dass Du itz und mich dazu bewegen konntest, dass Makro neu zu überdenken.
Jetzt läuft auch in der Original-Datei alles Super.
Gruß
Josef
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige