zur Erläuterung meines Problems kurz folgender Hintergrund:
Ich möchte gerne meinen Rechnungen einen Grafik-QR-Bezahlcode hinzufügen.
Dazu habe ich mir folgende Tabelle als Vorlage eingerichtet:
https://www.herber.de/bbs/user/148917.xlsm
Für die, die nicht gern Dateien mit Makros runterladen, hier auch noch mal eine kurze Erläuterung:
Die Angaben zu Empfänger, IBAN, BIC, Betrag und Verwendungszweck sind in der Beispielstabelle in den Zellen D2 bis D6 eingetragen. In einer weiteren Zelle (im vorliegenden Beispiel in B2) habe ich eine benutzerdefinierte Funktion
Den Code des Moduls füge ich untern nochmal an.
Ich habe jetzt folgendes Problem:
Alles klappt wurderbar, nur die letzte Zeile mit dem PasteSpecial-Befehl bewirkt einfach nichts, keine Fehlermeldung, aber auch nicht das Einfügen der Grafik.
Was nun kurios ist: Wenn ich die besagte Befehlszeile nach Durchlauf der Funktion händisch über das Sub
Hier noch einmal der Code des entsprechenden Moduls:
Option Explicit
Const BarcodeWidth As Integer = 92 'Breite des QR-Codefensters
Public Function pf_QRCode(Empfänger As String, IBAN As String, BIC As String, Betrag As String, Verwendungszweck As String) As String
Dim BarcodeText As String, wdapp As Word.Application
BarcodeText = ufunc_Sonderzeichen("bank://singlepaymentsepa?name=" & Empfänger & "&reason=" & Verwendungszweck & "&iban=" & IBAN & "&bic=" & BIC & "&amount=" & Betrag)
BarcodeText = "DISPLAYBARCODE '" & BarcodeText & "' QR \s 50 \q 3"
pf_QRCode = BarcodeText
' Den Klartext in QR-Grafik umwandeln
Set wdapp = CreateObject("Word.Application")
With wdapp.Documents.Add
.Fields.Add(Range:=.Range, Type:=-1, Text:=BarcodeText, PreserveFormatting:=False).Copy
.Close savechanges:=False
End With
wdapp.Quit: Set wdapp = Nothing
ActiveSheet.PasteSpecial Format:="Picture (Enhanced Metafile)", Link:=False, DisplayAsIcon:=False
End Function
Private Function ufunc_Sonderzeichen(UmzuwandelnderText As String) As String
UmzuwandelnderText = Replace(UmzuwandelnderText, " ", "%20")
UmzuwandelnderText = Replace(UmzuwandelnderText, ",", "%2C")
ufunc_Sonderzeichen = UmzuwandelnderText
End Function
Private Sub usub_QR_Grafik()
ActiveSheet.PasteSpecial Format:="Picture (Enhanced Metafile)", Link:=False, DisplayAsIcon:=False
End Sub
Viele Grüße aus der Lüneburger Heide!Norbert