Anzeige
Archiv - Navigation
1116to1120
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

Nochmals Druckmakro

Nochmals Druckmakro
WalterK
Hallo,
nochmals eine Frage zu meinem Druckmakro. Den Teil ab "With ActiveSheet" habe ich selbst dazugewurstelt.
Nach der MSG-Box kommt der Druckerdialog und da klappt es noch nicht ganz:
1.) Wenn ich im Druckerdialog einen anderen als den Standard-Drucker auswähle, passiert zuerst einige Zeit nichts und dann wird trotzdem mit dem Standard-Drucker gedruckt.
2.) Wenn ich Abbrechen anklicke, wird trotzdem gedruckt.
Sub BlattEins()
Dim strActP As String, blnPrint As Boolean
strActP = Application.ActivePrinter
blnPrint = True
If MsgBox("Ihr aktiver Drucker ist: " & strActP & vbLf & _
"Möchten Sie die Druckaufträge mit diesem Drucker ausführen und haben Sie die ABNr erfasst  _
bzw. überprüft?", _
vbInformation + vbYesNo, "Drucken") = vbNo Then
blnPrint = Application.Dialogs(xlDialogPrinterSetup).Show
End If
'  If blnPrint Then ActiveSheet.PrintPreview
Application.ActivePrinter = strActP
With ActiveSheet
.PageSetup.PrintArea = "A4:P47"
.PageSetup.Orientation = xlPortrait
.PrintOut
End With
Application.ScreenUpdating = False
Range("A4:P162").Select
ActiveSheet.PageSetup.PrintArea = "$A$4:$P$162"
Range("G4").Select
Application.ScreenUpdating = True
End Sub
Wer kann mir bitte helfen?
Servus, Walter

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Nochmals Druckmakro
22.11.2009 15:49:05
Daniel
Hi
naja, nach der Abfrage stellt du ja den ursprünglichen Drucker wieder ein und erst danach erfolgt der Befehl zum Ausdrucken.
der Befehl zum Ausdrucken wird IMMER ausgeführt, da vorher keine IF-Abfrage oder sonstige Prüfung auf Abbruch erfolgt.
ich habe die entsprechenden Stellen mal fett markiert:
Sub BlattEins()
Dim strActP As String, blnPrint As Boolean
strActP = Application.ActivePrinter
blnPrint = True
If MsgBox("Ihr aktiver Drucker ist: " & strActP & vbLf & _
"Möchten Sie die Druckaufträge mit diesem Drucker ausführen und haben Sie die ABNr erfasst   _
_
bzw. überprüft?", _
vbInformation + vbYesNo, "Drucken") = vbNo Then
blnPrint = Application.Dialogs(xlDialogPrinterSetup).Show
End If
'  If blnPrint Then ActiveSheet.PrintPreview
Application.ActivePrinter = strActP  'der erste Drucker wird wieder aktiviert
With ActiveSheet
.PageSetup.PrintArea = "A4:P47"
.PageSetup.Orientation = xlPortrait
 .PrintOut ' hier erfolgt er eigentliche Ausdruck, immer!
End With
Application.ScreenUpdating = False
Range("A4:P162").Select
ActiveSheet.PageSetup.PrintArea = "$A$4:$P$162"
Range("G4").Select
Application.ScreenUpdating = True
End Sub
Gruß, Daniel
Anzeige
OK, jetzt glaube ich zu wissen ....
22.11.2009 16:01:53
WalterK
Hallo Daniel,
... warum es nicht funktioniert. Kannst Du mir auch noch behilflich sein, damit der Code richtig läuft.
Danke und Servus, Walter
AW: OK, jetzt glaube ich zu wissen ....
22.11.2009 16:11:52
Daniel
HI
im prinzip schon, was ist denn deine nächste Frage?
Gruß, Daniel
AW: OK, jetzt glaube ich zu wissen ....
22.11.2009 16:18:27
WalterK
Hallo Daniel;
Ziel ist
1.) dass ich beim Druckerdialog auch einen anderen Drucker auswählen kann und dann auch mit diesem gedruckt wird und
2.) wenn ich auf Abbrechen klicke, dass dann auch abgebrochen wird.
Ich bin totaler VBA-Laie und kann nichts davon selbst erledigen.
Servus, Walter
AW: OK, jetzt glaube ich zu wissen ....
22.11.2009 16:23:59
Daniel
HI
wenn du absoluter VBA-Laie bist, von wem hast du dann diesen Code?
Gruß, Daniel
Anzeige
Wenn ich etwas in VBA brauche ...
22.11.2009 16:34:18
WalterK
Hi
suche ich in der Recherche und versuche den Rest mittels Makrorekorder hinzubekommen.
So auch hier. Den 1. Teil habe ich im Forum erhalten, den Rest zusammengestückelt.
Servus, Walter
AW: Wenn ich etwas in VBA brauche ...
22.11.2009 16:55:58
Daniel
Hi
da das Problem schneller gelöst als erklärt ist:
Sub BlattEins()
Dim strActP As String, blnPrint As Boolean
Dim auswahl As Long
strActP = Application.ActivePrinter
blnPrint = True
auswahl = MsgBox("Ihr aktiver Drucker ist: " & strActP & vbLf & "Möchten Sie die Druckaufträ _
ge mit diesem Drucker ausführen und haben Sie die ABNr erfasst zw. überprüft?", _
vbInformation + vbYesNo, "Drucken")
If auswahl = vbNo Then blnPrint = Application.Dialogs(xlDialogPrinterSetup).Show
If auswahl = vbYes Or blnPrint = True Then
With ActiveSheet
.PageSetup.PrintArea = "A4:P47"
.PageSetup.Orientation = xlPortrait
.PrintOut
End With
Application.ActivePrinter = strActP
end if
End Sub

Gruß, Daniel
Anzeige
Das ist ein wahres Wort ...
22.11.2009 17:15:05
WalterK
Hallo Daniel,
... denn alles Erklären hätte nichts genutzt, wenn ich es nicht umsetzen kann.
Jetzt passt es wie es sein soll,
Danke und Servus, Walter
AW: Das ist aber eigentlich der Falsche
22.11.2009 17:25:59
Daniel
Weg, den schließlich willst du ja nicht ewig am Forumstropf hängen, oder?
Gruß, Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige