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

VBA ausführen nach Befehl drucken

VBA ausführen nach Befehl drucken
14.03.2005 18:52:19
Jochen
Hallo zusammen,
beim drücken des Buttons "Drucken" oder nach Auswahl von Datei - Drucken möchte ich, daß ein Skript startet.
Wie mache ich daß ?
Danke und Gruß
Jochen

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA ausführen nach Befehl drucken
14.03.2005 19:01:26
Herbert
Hallo Jochen
dafür gibt es das Arbeitsmappen-Ereignis "Before_Print"

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Mein Makro
End Sub

Gruß Herbert
AW: VBA ausführen nach Befehl drucken
14.03.2005 21:51:16
Jochen
Hallo Herbert,
Danke für Deine Antwort, aber wenn ich das Makro (s.u.) in ein Modul kopiere, dann führt er die gewünschten Aktionen leider nicht aus.
Weiß hier evtl jemand Rat ?!?!?!

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim strUnlocked As String
strUnlocked = "H22,C3:I3,D5:H5,D7:I54,B19:B21,B28:B30,B35:B37,B44:B46,B52:B54"
With ActiveSheet
.Unprotect
.Range(strUnlocked).Interior.ColorIndex = xlNone
.PrintOut
.Range(strUnlocked).Interior.ColorIndex = 19
.Protect
End With
End Sub

Danke und Gruß
Jochen
Anzeige
AW: VBA ausführen nach Befehl drucken
14.03.2005 21:58:36
Herbert
du mußt es in das Arbeitsmappenmodul "Diese Arbeitsmappe" kopieren !
Gruß Herbert
AW: VBA ausführen nach Befehl drucken
15.03.2005 07:10:36
Jochen
Hallo Herbert,
wenn ich nun auf "drucken" gehe, dann druckt er mir alles gleich zwei mal. Einmal an der stelle, an der im Skript ".PrintOut" steht und einmal nach beendigung des Makros. Also nciht wirklihc daß, was ich haben will.
Weißt Du hier eine Lösung?
Danke und Gruß
Jochen
AW: VBA ausführen nach Befehl drucken
15.03.2005 07:22:47
WernerB.
Hallo Jochen,
wie gefällt Dir das (ungetestet)?

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim strUnlocked As String
Application.EnableEvents = False       'Ereignis AUS
strUnlocked = "H22,C3:I3,D5:H5,D7:I54,B19:B21,B28:B30,B35:B37,B44:B46,B52:B54"
With ActiveSheet
.Unprotect
.Range(strUnlocked).Interior.ColorIndex = xlNone
.PrintOut
.Range(strUnlocked).Interior.ColorIndex = 19
.Protect
End With
Application.EnableEvents = True        'Ereignis EIN
Cancel = True
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: VBA ausführen nach Befehl drucken
15.03.2005 08:51:11
Jochen
Hallo Werner,
so ganz ist es daß auch nciht. Nun druckt er zwar nur noch einmal, aber wenn ich über Datei - Drucken gehe, dann kann ich gar keinen Drucker auswählen.
Da ich öfter zwischen PDF uns Papier wechsel sollte daß auch möglich sein ....
naja, evtl ist es ja auhc nur etwas viel verlangt!
Danke und Gruß
Jochen
AW: VBA ausführen nach Befehl drucken
15.03.2005 10:33:26
Herbert
Hallo Jochen,
Ich habe mir dein Makro nicht angeschaut,habe darum auch nicht gesehen,
daß du im Makro druckst...
die einfachste Lösung, oder vielleicht überhaupt die einzig mögliche Lösung
ist, mit einem ganz normalen Makro,ausgeführt mit einer Schaltfläche
zu Drucken.


Sub Drucken()
Dim strUnlocked As String
strUnlocked = "H22,C3:I3,D5:H5,D7:I54,B19:B21,B28:B30,B35:B37,B44:B46,B52:B54"
With ActiveSheet
.Unprotect
.Range(strUnlocked).Interior.ColorIndex = xlNone
.PrintOut
.Range(strUnlocked).Interior.ColorIndex = 3
.Protect
End With
End Sub

Gruß Herbert
Anzeige
AW: VBA ausführen nach Befehl drucken
15.03.2005 10:43:20
Jochen
Hallo Herbert,
daran habe ich auch schon gedacht und es auch schon mal eingebaut. Nun muß ich mir halt noch mit einbauen, daß er den Button ausblendet vor dem drucken. (sieht halt schöner aus ....)
Kann ich denn dann erzwingen, daß er mich automatisch in das Drucker-Auswahlmenü schickt und nicht direkt druckt?
Danke und Gruß
Jochen
AW: VBA ausführen nach Befehl drucken
15.03.2005 12:06:21
Herbert
wenn du den "CommandButton" der Steuerelement-Toolbox nimmst,
brauchst du ihn nicht ausblenden,sondern die Buttoneigenschaft "Printobject" auf
false setzen...
den Drucker kannst du eventuell auch per Makro auswählen...
etwa so:

Sub Drucker_einstellen()
SendKeys "%"
SendKeys "{down 13}" & "{enter}" & "{tab 5}" & "{down 1}"
End Sub

da mußt du halt die restlichen Tastenanschläge bis zum Schließen
des Druckdialogs noch hinzufügen...
Gruß Herbert
Anzeige
AW: VBA ausführen nach Befehl drucken
15.03.2005 13:07:33
Jochen
Hallo Herbert,
auf den ersten Blick scheint das Makro nun daß zu machen, was soll, auch wenn ich die Tastenfolge da oben nicht ganz verstehe .....
Trotzdem einen recht herzlichen Dank !!!!
Gruß
Jochen
AW: VBA ausführen nach Befehl drucken
15.03.2005 13:16:13
Jochen
Hallo zusammen,
da habe ich mich wohl zu früh gefreut. Mein Makro sieht jetzt so aus:

Sub drucken()
Dim strUnlocked As String
strUnlocked = "H22,C3:I3,D5:H5,D7:I54,B19:B21,B28:B30,B35:B37,B44:B46,B52:B54"
With ActiveSheet.Unprotect
ActiveSheet.Range(strUnlocked).Interior.ColorIndex = xlNone
SendKeys "%"
SendKeys "{down 13}" & "{enter}" & "{tab 5}" & "{down 1}"
ActiveSheet.Range(strUnlocked).Interior.ColorIndex = 19
ActiveSheet.Protect
End With
End Sub

Nun kann ich zwar den Drucker auswählen, aber bevor der Drucker druckt, sind die anderen Aktionen auch schon wieder vorbei .... Also doch nicht daß wahre. Eigentlich müßte er warten, bis er eine Rückmeldung bekommt, daß der Druck abgeschlossen ist ....
Naja, ich schau mal, wie ich daß nun hinbekomme, aber trotzdem Danke.
Gruß
Jochen
Anzeige
AW: VBA ausführen nach Befehl drucken
15.03.2005 13:34:52
Herbert
ich habe nicht geschrieben, daß du das wie von dir ausgeführt
machen sollst...
probier einmal das Makro "Druckereinstellung" als einzelnes Makro...
damit du überhaupt einmal siehst was da läuft..
ich habe ja geschrieben, daß du es noch ergänzen mußt...
ich würde es als einzelnes Makro aufrufen,
und nicht einbauen...
Gruß Herbert
AW: VBA ausführen nach Befehl drucken
15.03.2005 13:39:01
Jochen
Hallo Herbert,
auch als extra Makro habe ich es schon versucht (s.u.). Das Ergebniss ist leider das gleiche :-(

Sub drucken()
Dim strUnlocked As String
strUnlocked = "H22,C3:I3,D5:H5,D7:I54,B19:B21,B28:B30,B35:B37,B44:B46,B52:B54"
With ActiveSheet.Unprotect
ActiveSheet.Range(strUnlocked).Interior.ColorIndex = xlNone
drucker_einstellen
ActiveSheet.Range(strUnlocked).Interior.ColorIndex = 19
ActiveSheet.Protect
End With
End Sub


Sub drucker_einstellen()
SendKeys "^p" & "{tab 5}" & "{down 1}"
End Sub

Trotzdem Danke für Deine Tips
Jochen
Anzeige
AW: VBA ausführen nach Befehl drucken
15.03.2005 13:57:04
Herbert
ich meinte, das Makro extra mit eigener Schaltfläche aufrufen...

Sub drucken()
Dim strUnlocked As String
strUnlocked = "H22,C3:I3,D5:H5,D7:I54,B19:B21,B28:B30,B35:B37,B44:B46,B52:B54"
With ActiveSheet.Unprotect
ActiveSheet.Range(strUnlocked).Interior.ColorIndex = xlNone
ActiveSheet.Range(strUnlocked).Interior.ColorIndex = 19
ActiveSheet.Protect
End With
End Sub


Sub drucker_einstellen()
SendKeys "^p" & "{tab 5}" & "{down 1}"
End Sub

mit einer Schaltfläche den Drucker x einstellen,
mit einer anderen Schaltfläche Drucker y einstellen,
mit einer anderen Schaltfläche drucken..
Gruß Herbert
Anzeige
AW: VBA ausführen nach Befehl drucken
15.03.2005 14:19:04
Jochen
OK, zwar nciht ganz daß was ich wollte, aber es lößt mein Problem natürlich auch ....
Danke für die vielen Hilfestellungen !!!
Gruß
Jochen

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige