wurde gedruckt?

Betrifft: wurde gedruckt?
von: Johann
Geschrieben am: 24.09.2020 11:26:07
Hallo zusammen,
wenn man die Druckansicht aufruft, dann wird
ActiveWorkbook.BuiltinDocumentProperties("Last print date").Value
gesetzt. Ich würde gerne wissen, ob das Dokument nun gedruckt wurde, oder nicht.
Gibt es da eine Möglichkeit?
Grüße
Hans

Betrifft: AW: wurde gedruckt?
von: Nepumuk
Geschrieben am: 24.09.2020 12:28:28
Hallo Hans,
da weder das aufrufen der Druckansicht, noch der Klick auf den Button "Drucken" ein verwertbares Event in Excel auslösen, sehe ich da schwarz.
Gruß
Nepumuk

Betrifft: AW: wurde gedruckt?
von: max.kaffl@gmx.de
Geschrieben am: 24.09.2020 16:06:26
Hallo Hans,
jetzt ist mir gerade was eingefallen. Teste mal:
Im Modul "DieseArbeitsmappe":
Private Sub Workbook_BeforePrint(Cancel As Boolean)
MsgBox "Print"
End Sub
Gruß
Nepumuk

Betrifft: AW: wurde gedruckt?
von: Johann
Geschrieben am: 24.09.2020 19:04:47
Hallo Nepumuk,
in welches Modul soll ich das reinpacken?
Durch wen, oder was soll diese Sub aufgerufen werden?
Danke im Voraus fpr Deine Antwort.
Grüße
Hans

Betrifft: AW: wurde gedruckt?
von: Hajo_Zi
Geschrieben am: 24.09.2020 19:07:05
Halo Hans,
lese den Beitrag komplett.
Im Modul "DieseArbeitsmappe":


Betrifft: AW: wurde gedruckt?
von: Nepumuk
Geschrieben am: 24.09.2020 19:15:36
Hallo Hans,
das ist eine Event-Routine die durch das Drucken ausgelöst wird.
Die muss in das Modul "DieseArbeitsmappe".
Gruß
Nepumuk

Betrifft: AW: wurde gedruckt?
von: Daniel
Geschrieben am: 24.09.2020 19:16:20
Soweit ich mich erinnern kann, wird das aus der gleichen Situation getriggert wie die BuiltInProperty, nämlich schon vor dem erstellen der Druckvorschau (Ist ja auch notwendig, denn sonst würde die Druckvorschau ja u.U ein falsches Ergebnis liefern)
Auch vor einem SpeichernUnter als PDF muss dieses Makro laufen, dh. feststellen, ob tatsächlich was an den Drucker geschickt wurde, kann man damit nicht.
Gruß Daniel

Betrifft: AW: wurde gedruckt?
von: Johann
Geschrieben am: 24.09.2020 22:47:40
Danke an alle.
Es klappt nicht. Es lässt sich nicht unterscheiden zwischen Druckvorschau mit, oder ohne nachfolgendem Ausdruck.
Schade, aber danke für Eure Mühe.
Grüße
Hans

Betrifft: AW: wurde gedruckt?
von: Nepumuk
Geschrieben am: 25.09.2020 11:09:06
Hallo Hans,
bei mir wird die Event-Prozedur nur ausgelöst wenn ich wirklich drucke, nicht durch die Seitenansicht. Du kannst ja eine eigene Property anlegen in der du das Datum des Drucks einträgst.
Im Modul "DieseArbeitsmappe":
Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim objDocumentProperty As DocumentProperty
For Each objDocumentProperty In CustomDocumentProperties
If objDocumentProperty.Name = PRINT_DATE Then Exit For
Next
If objDocumentProperty Is Nothing Then
Call CustomDocumentProperties.Add(Name:="PrintDate", _
LinkToContent:=False, Type:=msoPropertyTypeDate, Value:=Now)
Else
objDocumentProperty.Value = Now
Set objDocumentProperty = Nothing
End If
End Sub
In einem Standardmodul (Menüleiste - Einfügen - Modul):
Option Explicit
Public Const PRINT_DATE As String = "PrintDate"
Public Sub GetLastPrintDate()
Dim objDocumentProperty As DocumentProperty
For Each objDocumentProperty In ThisWorkbook.CustomDocumentProperties
If objDocumentProperty.Name = PRINT_DATE Then Exit For
Next
If objDocumentProperty Is Nothing Then
Call MsgBox("Dokument wurde noch nicht gedruckt.", vbExclamation, "Hinweis")
Else
Call MsgBox(Format$(objDocumentProperty.Value, "dd.mm.yyyy Hh:Nn:Ss"), vbInformation, "Information")
Set objDocumentProperty = Nothing
End If
End Sub
Gruß
Nepumuk

Betrifft: AW: wurde gedruckt?
von: Nepumuk
Geschrieben am: 25.09.2020 11:25:18
Hallo Hans,
in der Event-Prozedur ist der Property-Name noch hart codiert. Daher:
Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim objDocumentProperty As DocumentProperty
For Each objDocumentProperty In CustomDocumentProperties
If objDocumentProperty.Name = PRINT_DATE Then Exit For
Next
If objDocumentProperty Is Nothing Then
Call CustomDocumentProperties.Add(Name:=PRINT_DATE, _
LinkToContent:=False, Type:=msoPropertyTypeDate, Value:=Now)
Else
objDocumentProperty.Value = Now
Set objDocumentProperty = Nothing
End If
End Sub
Gruß
Nepumuk
Beiträge aus dem Excel-Forum zum Thema "wurde gedruckt?"