Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Lokale Speicherung eines per Google API erstellten QR-Codes

Forumthread: Lokale Speicherung eines per Google API erstellten QR-Codes

Lokale Speicherung eines per Google API erstellten QR-Codes
22.12.2023 13:52:48
Ingo101
Hallo zusammen,

mit mehreren Vorlagen aus dem Internet habe ich ein Makro (zusammen)gebastelt, dass aus einer Tabelle QR Codes für Visitenkarten erzeugen kann. Das ganze passiert über die Google API. Ziel ist ein QR-Code, der auf eine Visitenkarte soll und dann gescannt werden kann.

Der Code an sich funktioniert. Der QR wird erstellt und ist lesbar. Aber ich weiß nicht, wie ich ihm lokal speichern kann. Die Datei soll als PNG mit einem einmaligem Namen aus der Tabelle, z.B. aus Spalte Q gespeichert werden.

Ist das möglich? Und wenn ja, wie kann man das umsetzen?

Vielen Dank für Eure Hilfe!

lg
Ingo



Sub generateQRCode()



strURL = "https://chart.googleapis.com/chart?cht=qr"

For intRow = 2 To 10

' NEU
strTitel = Trim(ThisWorkbook.Sheets("Contact_Info").Range("A" & intRow).Text)
strFname = Trim(ThisWorkbook.Sheets("Contact_Info").Range("B" & intRow).Text)
strLname = Trim(ThisWorkbook.Sheets("Contact_Info").Range("C" & intRow).Text)
strRole = Trim(ThisWorkbook.Sheets("Contact_Info").Range("D" & intRow).Text)
strJobTitle = Trim(ThisWorkbook.Sheets("Contact_Info").Range("E" & intRow).Text)
strAdresse = Trim(ThisWorkbook.Sheets("Contact_Info").Range("i" & intRow).Text)
strEmail = Trim(ThisWorkbook.Sheets("Contact_Info").Range("k" & intRow).Text)
strFestnetz = Trim(ThisWorkbook.Sheets("Contact_Info").Range("l" & intRow).Text)
strCellPhone = Trim(ThisWorkbook.Sheets("Contact_Info").Range("n" & intRow).Text)
strFax = Trim(ThisWorkbook.Sheets("Contact_Info").Range("m" & intRow).Text)


strVCF = ""
strVCF = strVCF & "BEGIN:VCARD" & Chr(10)
strVCF = strVCF & "VERSION:4.0" & Chr(10)

strVCF = strVCF & "N;charset=utf-8:" & strLname & ";" & strFname & ";" & strTitel & Chr(10)
strVCF = strVCF & "FN:" & strTitel & " " & strFname & " " & strLname & Chr(10)
strVCF = strVCF & "TITLE:" & strJobTitle & Chr(10)
strVCF = strVCF & "ORG:" & "xxxxx" & Chr(10)
strVCF = strVCF & "EMAIL;WORK:" & strEmail & Chr(10)
strVCF = strVCF & "ADR;WORK:" & strAdresse & Chr(10)
strVCF = strVCF & "TEL;TYPE=CELL,WORK:" & strCellPhone & Chr(10)
strVCF = strVCF & "TEL;WORK:" & strFestnetz & Chr(10)
strVCF = strVCF & "TEL;TYPE=FAX,WORK:" & strFax & Chr(10)
strVCF = strVCF & "ROLE:" & strRole & Chr(10)

strVCF = strVCF & "END:VCARD"

ThisWorkbook.Sheets("Contact_Info").Range("O" & intRow) = strVCF

strChs = "&chs=174" & "x" & "174"
strChl = "&chl="
strFinalURL = strURL & strChs & strChl & strVCF

Dim pic As Object, sh As Shape
ActiveSheet.Range("J" & intRow).Select

Set pic = ActiveSheet.Pictures.Insert(strFinalURL)
pic.Top = ActiveSheet.Range("J" & intRow).Top
pic.Left = ActiveSheet.Range("J" & intRow).Left


Next

End Sub
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Lokale Speicherung eines per Google API erstellten QR-Codes


Schritt-für-Schritt-Anleitung

Um einen QR-Code mit der Google API in Excel zu erstellen und lokal zu speichern, folge diesen Schritten:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Neues Modul erstellen: Klicke im Menü auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Sub generateQRCode()
       strURL = "https://chart.googleapis.com/chart?cht=qr"
    
       For intRow = 2 To 10
           strTitel = Trim(ThisWorkbook.Sheets("Contact_Info").Range("A" & intRow).Text)
           strFname = Trim(ThisWorkbook.Sheets("Contact_Info").Range("B" & intRow).Text)
           strLname = Trim(ThisWorkbook.Sheets("Contact_Info").Range("C" & intRow).Text)
           strRole = Trim(ThisWorkbook.Sheets("Contact_Info").Range("D" & intRow).Text)
           strJobTitle = Trim(ThisWorkbook.Sheets("Contact_Info").Range("E" & intRow).Text)
           strAdresse = Trim(ThisWorkbook.Sheets("Contact_Info").Range("I" & intRow).Text)
           strEmail = Trim(ThisWorkbook.Sheets("Contact_Info").Range("K" & intRow).Text)
           strFestnetz = Trim(ThisWorkbook.Sheets("Contact_Info").Range("L" & intRow).Text)
           strCellPhone = Trim(ThisWorkbook.Sheets("Contact_Info").Range("N" & intRow).Text)
           strFax = Trim(ThisWorkbook.Sheets("Contact_Info").Range("M" & intRow).Text)
    
           strVCF = "BEGIN:VCARD" & vbCrLf & _
                    "VERSION:4.0" & vbCrLf & _
                    "N:;" & strLname & ";" & strFname & vbCrLf & _
                    "FN:" & strTitel & " " & strFname & " " & strLname & vbCrLf & _
                    "TITLE:" & strJobTitle & vbCrLf & _
                    "EMAIL;WORK:" & strEmail & vbCrLf & _
                    "ADR;WORK:" & strAdresse & vbCrLf & _
                    "TEL;TYPE=CELL,WORK:" & strCellPhone & vbCrLf & _
                    "TEL;WORK:" & strFestnetz & vbCrLf & _
                    "TEL;TYPE=FAX,WORK:" & strFax & vbCrLf & _
                    "ROLE:" & strRole & vbCrLf & _
                    "END:VCARD"
    
           ThisWorkbook.Sheets("Contact_Info").Range("O" & intRow) = strVCF
           strChs = "&chs=174x174"
           strChl = "&chl="
           strFinalURL = strURL & strChs & strChl & strVCF
    
           Dim pic As Object
           Set pic = ActiveSheet.Pictures.Insert(strFinalURL)
           pic.Top = ActiveSheet.Range("J" & intRow).Top
           pic.Left = ActiveSheet.Range("J" & intRow).Left
       Next
    End Sub
  4. Führen Sie das Makro aus: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle generateQRCode und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • QR-Code wird nicht angezeigt: Stelle sicher, dass die Internetverbindung aktiv ist, da die Google API verwendet wird, um den QR-Code zu generieren.
  • Ungültige URL: Überprüfe, ob die URL korrekt ist und dass alle Parameter für die Google API QR-Code-Anfrage richtig gesetzt sind.
  • Bild kann nicht eingefügt werden: Achte darauf, dass die Zellen, in die das Bild eingefügt werden soll, leer sind.

Alternative Methoden

Wenn du die Google API nicht verwenden möchtest, kannst du auch andere QR-Code-Generatoren ausprobieren, die lokale Speicherung unterstützen. Programme wie QRCode Monkey oder QR Code Generator bieten oft die Möglichkeit, QR-Codes direkt als Bilddatei herunterzuladen.


Praktische Beispiele

Angenommen, du hast die folgenden Daten in deiner Contact_Info-Tabelle:

A B C D E I K L N M
Titel Vorname Nachname Rolle Jobtitel Adresse E-Mail Festnetz Mobil Fax
Dr. Max Mustermann Manager IT Support Musterstraße 1 max@beispiel.de 0123-456 0176-1234 0123-456

Wenn du das Makro ausführst, wird für jede Zeile ein QR-Code erstellt, der alle Kontaktdaten in einem VCF-Format speichert.


Tipps für Profis

  • Batch-Verarbeitung: Du kannst das Makro anpassen, um eine größere Anzahl von QR-Codes auf einmal zu generieren, indem du die Schleife entsprechend anpasst.
  • Datenvalidierung: Füge eine Validierung der Eingabedaten hinzu, um sicherzustellen, dass alle erforderlichen Informationen vorhanden sind, bevor der QR-Code generiert wird.
  • Verwendung von QR-Codes in Dokumenten: Nutze die generierten QR-Codes in anderen Dokumenten oder Präsentationen, um den Zugriff auf Kontaktdaten zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich die QR-Codes direkt als PNG speichern?
Du kannst zusätzliche VBA-Funktionen verwenden, um die eingefügten Bilder als PNG-Dateien auf deinem Computer zu speichern.

2. Was mache ich, wenn die Google API nicht funktioniert?
Überprüfe, ob die URL korrekt ist und ob die Google API derzeit verfügbar ist. In einigen Fällen kann es zu temporären Ausfällen kommen.

3. Kann ich das Makro anpassen, um andere QR-Code-Größen zu verwenden?
Ja, du kannst die Parameter in der strChs-Variablen ändern, um die Größe des QR-Codes anzupassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige