Thema Datum  Von Nutzer Rating
Antwort
Rot Hilfe bei VBA-Code zur Aktualisierung eines QR-Codes in Word
21.11.2024 16:52:37 Zeus77
NotSolved
21.11.2024 21:12:21 ralf_b
NotSolved

Ansicht des Beitrags:
Von:
Zeus77
Datum:
21.11.2024 16:52:37
Views:
43
Rating: Antwort:
  Ja
Thema:
Hilfe bei VBA-Code zur Aktualisierung eines QR-Codes in Word
Hallo zusammen, ich habe einen Word-Displaybarcode erstellt, der von Banking-Apps zum Bezahlen eingescannt werden kann. Diesen Barcode möchte ich in eine Fachanwendung integrieren und den Betrag über VBA dynamisch zu aktualisieren. Dabei stoße ich jedoch auf ein Problem: Sobald ein weiteres Word-Dokument geöffnet wird, funktioniert die Aktualisierung des QR-Codes nicht mehr, wenn der Betrag im Textfeld geändert wird. Ich arbeite mit Office Standard 2016 und habe leider keine Möglichkeit, auf eine neuere Version zu upgraden. Zudem erlaubt die Fachanwendung ausschließlich VBA-Codes über Word-Vorlagen mit Makros. Habt ihr vielleicht eine alternative Lösung für den VBA-Code oder einen Workaround, um dieses Problem zu umgehen? Vielen Dank vorab für eure Unterstützung! Beste Grüße Zeus77

Dim oldValue As String
Dim monitoredDoc As Document

Sub AutoOpen()
    ' Diese Subroutine wird beim Öffnen des Dokuments ausgeführt
    Call SetUpChangeEvent
End Sub

Sub SetUpChangeEvent()
    ' Diese Subroutine richtet das Change-Event für die Textmarke "Betrag" ein
    Set monitoredDoc = ActiveDocument
    
    ' Überprüfen, ob das Dokument die Vorlage Qr2.dotm verwendet
    If IsDocumentUsingTemplate(monitoredDoc, "Qr2.dotm") Then
        ' Überprüfen, ob die Textmarke existiert
        If monitoredDoc.Bookmarks.Exists("Betrag") Then
            ' Speichern Sie den ursprünglichen Wert der Textmarke
            oldValue = monitoredDoc.Bookmarks("Betrag").Range.Text
            ' Einrichten des Change-Events
            Application.OnTime Now + TimeValue("00:00:01"), "CheckBookmarkChange"
        End If
    End If
End Sub

Function IsDocumentUsingTemplate(oDoc As Document, templateName As String) As Boolean
    ' Diese Funktion überprüft, ob ein Dokument eine bestimmte Vorlage verwendet
    Dim attachedTemplate As Template
    Set attachedTemplate = oDoc.attachedTemplate
    
    If attachedTemplate Is Nothing Then
        IsDocumentUsingTemplate = False
    Else
        IsDocumentUsingTemplate = (attachedTemplate.Name = templateName)
    End If
End Function

Sub CheckBookmarkChange()
    ' Diese Subroutine überprüft, ob die Textmarke "Betrag" verändert wurde
    If monitoredDoc Is Nothing Then Exit Sub
    
    ' Sicherstellen, dass das Dokument noch geöffnet ist
    On Error Resume Next
    Dim checkName As String
    checkName = monitoredDoc.Name
    If Err.Number <> 0 Then Exit Sub
    On Error GoTo 0
    
    ' Sicherstellen, dass das aktuelle Dokument das überwachte Dokument ist
    If ActiveDocument Is monitoredDoc Then
        Dim newValue As String
        
        ' Überprüfen, ob das Dokument die Vorlage Qr2.dotm verwendet
        If IsDocumentUsingTemplate(monitoredDoc, "Qr2.dotm") Then
            ' Überprüfen, ob die Textmarke existiert
            If monitoredDoc.Bookmarks.Exists("Betrag") Then
                newValue = monitoredDoc.Bookmarks("Betrag").Range.Text
                ' Prüfen, ob der Wert sich geändert hat
                If newValue <> oldValue Then
                    oldValue = newValue
                    Call UpdateFields
                End If
            End If
        End If
    End If
    
    ' Wiederholtes Einrichten des Timers
    Application.OnTime Now + TimeValue("00:00:01"), "CheckBookmarkChange"
End Sub

Sub UpdateFields()
    ' Diese Subroutine aktualisiert alle Felder im Dokument
    If monitoredDoc Is Nothing Then Exit Sub
    
    Dim oField As field
    
    ' Überprüfen, ob das Dokument die Vorlage Qr2.dotm verwendet
    If IsDocumentUsingTemplate(monitoredDoc, "Qr2.dotm") Then
        For Each oField In monitoredDoc.Fields
            oField.Update
        Next oField
    End If
End Sub
 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Hilfe bei VBA-Code zur Aktualisierung eines QR-Codes in Word
21.11.2024 16:52:37 Zeus77
NotSolved
21.11.2024 21:12:21 ralf_b
NotSolved