Désolé, pas de code VBA pour créer directement des QR Codes… En effet, il existe de nombreux web services qui font ça très bien et j’avais un peu la flemme de réinventer la roue !
Le principe est de passer les paramètres du QR Code dans l’URL du web service. celui-ci retourne l’image du QR Code correspondant qui sera enregistrée localement.
Le code VBA qui réalise ces actions :
Public Function DownloadHTTP(ByVal URL As String, ByVal Destination As String) As Boolean
On Error GoTo catch
Dim oWinHTTP As Object
Dim fic As Integer
Dim buffer() As Byte
Set oWinHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
oWinHTTP.Open "GET", URL, False
oWinHTTP.send
If oWinHTTP.Status = 200 Then
fic = FreeFile
Open Destination For Binary Lock Read Write As #fic
buffer = oWinHTTP.ResponseBody
Put #fic, , buffer
Close #fic
DownloadHTTP = True
Else
MsgBox "Statut retourné par le service : " & oWinHTTP.Status & vbCrLf & _
"Description : " & oWinHTTP.StatusText, vbExclamation, "DownloadHTTP()..."
End If
finally:
Erase buffer
Set oWinHTTP = Nothing
Exit Function
catch:
MsgBox "Erreur n°" & Err.Number & vbCrLf & "Description : " & Err.Description, vbExclamation, "DownloadHTTP()..."
Close 'ferme tous les descripteurs ouverts
Resume finally
End Function
Ci-joint, le lien du web service qui me permet de créer le QR Code. La page explique les différents paramètres à transmettre.
Exemple
Coller la ligne suivante dans la fenêtre Exécution de VBE, placer le curseur sur la ligne collée puis appuyer sur ‘Entrée’ pour créer le QR Code.
'---
Si tout ce passe bien la fonction doit retourner ‘Vrai’ et l’image ‘QRCode.png’ est créée dans le répertoire de votre base de données.
Remarque
On peut encoder en UTF-8 le texte du QR Code avant de le passer dans l’URL pour éviter tout problème avec les caractères interdits. Voir le billet ici.
@+
Philippe