Millisekunden in MS Word mit DATE Funktion anzeigen?

3 Antworten

Hallo,

meines Wissens ist das leider nicht möglich, zumindest nicht über die DATE-Funktion.

Eventuell kann man dieses Format in VBA über die Zeitgeberfunktion Timer erzeugen, aber ich weiß natürlich nicht, was du mit deinem QR-Code bezweckst und wann dieser denn aktualisiert werden sollte.

Denn der Zeitstempel im QR-Code würde sich natürlich immer auf den Zeitpunkt beziehen, zu dem das Makro die Zeit zieht.

Gruß, BerchGerch

Woher ich das weiß:eigene Erfahrung

TommyReloaded 
Beitragsersteller
 31.01.2022, 18:16

Könntest du auf das mit dem Timer mal genauer eingehen? Also wie das funktionieren könnte? Ich find dazu leider nicht allzu viel :(

LG

0
BerchGerch  31.01.2022, 19:02
@TommyReloaded

Bitte teile mir erstmal mit, welchen Zeitpunkt der QR-Code denn genau erfassen soll. Denn wenn es nicht gelingt, den gewünschten Zeitpunkt per Makro zu erfassen, ist dein Vorhaben über VBA gar nicht möglich.

0
TommyReloaded 
Beitragsersteller
 02.02.2022, 14:58
@BerchGerch

Mein Vorhaben war, einen QR-Code quasi als einmaligen Code zu generieren und diesen QR-Code dann als Etikett auszudrucken. Also soll beim Druck jedes Mal das genaue Druckdatum im QR-Code stecken

0
BerchGerch  02.02.2022, 15:01
@TommyReloaded

Das dachte ich mir schon, dass das beim Drucken passieren soll, deswegen habe ich ja immer wieder gefragt. Und genau da wird’s dann kompliziert. Man kann den Druckbefehl per VBA schon abfangen und das Makro oben dann auslösen, aber den Druckbefehl abzufangen, ist nochmal eine ganze Spur komplexer.

Wenn ich mal Zeit habe, schreibe ich dir den Code hier rein, aber das klappt wahrscheinlich nicht so schnell.

0
TommyReloaded 
Beitragsersteller
 02.02.2022, 15:09
@BerchGerch

alles klar, aber immerhin habe ich nun eine grobe Ahnung wie es funktionieren soll.

Vielen Dank!

0
BerchGerch  02.02.2022, 16:53
@TommyReloaded

Ich habe den Code zum Abfangen des Druckbefehls per Zufall noch auf meinem Rechner gefunden. Da ich den jetzt nur mit dem von oben zusammenstöpseln muss, geht es schneller.

Ich stell dir nachher eine Anleitung mit dem Code rein. Hab’s schon ausprobiert. Es funktioniert.

0

Hallo,

hier die versprochene Anleitung. Zunächst musst du ein bisschen Vorarbeit leisten:

  • Aktiviere zunächst die Registerkarte Entwicklertools. Wie das geht, steht hier.
  • Füge nun an der Stelle, an der später dein QR-Code erscheinen soll, ein Textfeld ein über das Register Einfügen Textfeld. Das Textfeld brauchen wir, damit sich der QR-Code frei platzieren lässt.
  • In das Textfeld fügst du jetzt über das Register Entwicklertools in der Gruppe Steuerelemente das Rich-Text-Inhaltssteuerelement (das Symbol oben links) ein.
  • Schiebe jetzt das Textfeld mit dem Inhaltssteuerelement drin an die Stelle im Dokument, an der später dein QR-Code erscheinen soll und entferne über das Register Zeichentools/Format Formkontur Keine Kontur den Rahmen um dein Textfeld.
  • Wähle jetzt das Rich-Text-Inhaltssteuerelement im Textfeld an und klicke im Register Entwicklertools auf Eigenschaften. Hier gibst du im Feld Titel zwingend(!) QR-Code ein, nichts anderes. Wir brauchen genau diesen Titel später für das Makro, damit es weiß, wo es den QR-Code platzieren soll.
  • Aktiviere außerdem unten in den Eigenschaften das Kontrollkästchen Das Inhaltssteuerelement kann nicht gelöscht werden. Nachdem dieses Kontrollkästchen aktiviert wurde, kannst du am Textfeld um das Rich-Text-Inhaltssteuerelement nichts mehr verändern und das Textfeld auch nicht mehr verschieben; vorher müsstest du dieses Kontrollkästchen wieder deaktivieren!
  • Gehe nun in den Visual-Basic-Editor (Alt + F11) und lege zunächst über Einfügen Modul ein normales Modul an. In dieses Modul, dem du einen beliebigen Namen geben kannst, kopierst du den folgenden Code:
Option Explicit


Dim oAppClass As New ThisApplication


Sub AutoOpen()


    Set oAppClass.oApp = Word.Application


End Sub
  • Danach legst du noch über Einfügen Klassenmodul ein Klassenmodul an.
  • Dieses Klassenmodul musst du im Eigenschaftenfenster unter (Name) zwingend(!) in ThisApplication umbenennen. In dieses Klassenmodul kommt der folgende Code:
Option Explicit


Public WithEvents oApp As Word.Application


Private Sub oApp_DocumentBeforePrint(ByVal Doc As Document, Cancel As Boolean)


    'Hier auszuführenden Code einfügen
    Dim strZeitstempel As String
    
    strZeitstempel = Format(Now, "yyyyMMddhhmmss") & Right(Format(Timer, "0.000"), 3)
    
    ActiveDocument.SelectContentControlsByTitle("QR-Code").Item(1).Range.Select


    With Selection
        .Delete
        .Fields.Add Range:=.Range, Type:=wdFieldEmpty, PreserveFormatting:=False
        .TypeText Text:="DisplayBarcode " & strZeitstempel & " QR"
        .Fields.Update
    End With
    
    Cancel = False 'Wenn Cancel = True gesetzt wird, wird der Druckbefehl an dieser Stelle abgebrochen.


End Sub
  • So, das sollte es gewesen sein. Speichere jetzt noch deine Makros (Strg + S) und speichere das Dokument unbedingt als Word-Dokument mit Makros ab!
  • Wenn du jetzt das Dokument öffnest und den Druckbefehl auslöst, sollte innerhalb des Rich-Text-Inhaltssteuerelements mit dem Namen QR-Code immer ein QR-Code mit dem aktuellen Zeitstempel generiert werden.

Eine Rückmeldung wäre nett. Wie gesagt: Bei mir klappt das einwandfrei, aber ich übernehme keinerlei Gewähr und hafte für keinerlei Schäden, die möglicherweise durch die Verwendung des Codes entstehen. Die Benutzung des zur Verfügung gestellten Codes erfolgt vollkommen auf eigenes Risiko.

Gruß, BerchGerch

Woher ich das weiß:eigene Erfahrung

Hallo,

in Anlehnung an das Makro auf dieser Seite habe ich folgendes Makro in VBA für Word geschrieben:

Sub QRCodeZeitstempel()

    Dim strZeitstempel As String
    
    strZeitstempel = Format(Now, "yyyyMMddhhmmss") & Right(Format(Timer, "0.000"), 3)

    With Selection
        .Fields.Add Range:=.Range, Type:=wdFieldEmpty, _
            PreserveFormatting:=False
        .TypeText Text:="DisplayBarcode " & strZeitstempel & " QR"
        .Fields.Update
    End With
    
End Sub

Der Code greift die Zeit in dem Moment ab, in dem das Makro ausgeführt wird, und generiert von diesem Zeitstempel in dem von dir gewünschten Format

yyyyMMddhhmmssSSS (SSS steht hier für Millisekunden)

einen entsprechenden QR-Code an genau der Stelle, an der dein Cursor gerade im Worddokument positioniert ist, sobald du das Makro ausführst. Beachte aber bitte, dass die letzte Ziffer immer eine 0 sein wird.

Ich hoffe, das hilft dir weiter. Eine Rückmeldung wäre nett!

Gruß, BerchGerch

Woher ich das weiß:eigene Erfahrung

TommyReloaded 
Beitragsersteller
 02.02.2022, 15:08

Danke, an sich ist das super, allerdings für meine Anwendung nicht anwendbar, da sich der QR-Code immer beim Druck auf die aktuelle Zeit setzen soll.

Trotzdem danke!

<3

0