Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

je me suis créé ma propre librairie QRCodeGenerator.dll

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

dysorthographie

XLDnaute Barbatruc
Bonjour,
je me suis créé ma propre librairie QRCodeGenerator.dll

en pièce jointe QRCodeGenerator.ZIP qui contient:


Voici une documentation complète pour utiliser la DLL QRCodeGenerator.dll dans VBA, incluant l’enregistrement de la DLL, l’activation dans VBA, et un exemple de code adapté à votre contexte.

1. Enregistrement de la DLL

Pour utiliser QRCodeGenerator.dll dans VBA, vous devez d’abord l’enregistrer avec regasm (outil fourni avec le SDK .NET).
Étapes :

  1. Ouvrir l’invite de commandes en tant qu’administrateur
  2. Naviguer vers le répertoire contenant QRCodeGenerator.dll
  3. Exécuter la commande suivante (remplacez le chemin par le vôtre) : cmd



    C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe "C:\Chemin\Complet\Vers\QRCodeGenerator.dll" /tlb:QRCodeGenerator.tlb /codebase



    • /tlb génère le fichier .tlb nécessaire pour VBA.
    • /codebase enregistre le chemin absolu de la DLL.


2. Activation de la bibliothèque dans VBA


  1. Ouvrir l’éditeur VBA (Alt + F11 dans Excel, Word, etc.)
  2. Aller dans Outils > Références
    • Si elle n’apparaît pas, cliquez sur Parcourir et sélectionnez le fichier QRCodeGenerator.tlb généré précédemment.

3. Exemple de code VBA pour générer un QR Code

Voici un exemple adapté à votre code source, pour un formulaire VBA (UserForm) contenant :

  • Un bouton btnGenerer
  • Une zone de texte txtQRData (pour le contenu du QR Code)
  • Un contrôle Image nommé QrCode (pour afficher le QR Code)
Code:
[I]Private Sub btnGenerer_Click()
Dim qrGenerator As QRCodeGenerator.QRCodeGenerator
Set qrGenerator = New QRCodeGenerator.QRCodeGenerator

' Redimensionner l'image pour remplir le contrôle
Me.QrCode.PictureSizeMode = fmPictureSizeModeStretch

' Effacer l'image précédente
Set Me.QrCode.Picture = Nothing

' Générer et afficher le QR Code si du texte est saisi
If Trim(Me.txtQRData.Value) <> "" Then
Set Me.QrCode.Picture = qrGenerator.GenerateQRCodeIPic(Me.txtQRData.Value)
Else
MsgBox "Veuillez entrer du texte pour générer le QR Code.", vbExclamation
End If

' Libérer la mémoire
Set qrGenerator = Nothing
End Sub[/I]



Annexe:
'===============================================================================
' MANUEL UTILISATEUR — QRCodeLib
' DLL COM pour la génération de QR codes
' Usage : VBA / Excel
'===============================================================================

'-------------------------------------------------------------------------------
' 1. INSTALLATION
'-------------------------------------------------------------------------------
' 1. Compiler la DLL en mode Release (x86 pour Excel 32-bit, x64 pour 64-bit)
' 2. Exécuter en administrateur :
' RegAsm.exe QRCodeLib.dll /tlb /codebase
' 3. Dans VBA : Outils > Références > cocher "QRCodeLib"

'-------------------------------------------------------------------------------
' 2. DÉCLARATION
'-------------------------------------------------------------------------------
' Liaison tardive (sans référence) :
Dim gen As Object
Set gen = CreateObject("QRCodeLib.QRCodeGenerator")

' Liaison anticipée (avec référence cochée) :
Dim gen As New QRCodeLib.QRCodeGenerator

'-------------------------------------------------------------------------------
' 3. MÉTHODES DISPONIBLES
'-------------------------------------------------------------------------------

'--- GenerateQRCodeIPic --------------------------------------------------------
' Retourne un IPictureDisp assignable à .Picture d'un contrôle Image ActiveX
'
' Paramètres :
' content (String) — texte à encoder (URL, texte libre, email, tel...)
' sizePixels (Integer) — taille en pixels, défaut 300
' margin (Integer) — marge en modules, défaut 1
' errorLevel (Integer) — niveau de correction d'erreur :
' 0 = L (7%)
' 1 = M (15%) ← défaut
' 2 = Q (25%)
' 3 = H (30%)

'--- GenerateQRCodeBytes -------------------------------------------------------
' Retourne un tableau d'octets PNG (Byte())
' Utile pour sauvegarder dans un fichier ou traiter manuellement

'-------------------------------------------------------------------------------
' 4. EXEMPLES
'-------------------------------------------------------------------------------

'--- Exemple 1 : insérer un QR code dans un contrôle Image ActiveX ------------
Sub ExempleImage()
Dim gen As Object
Set gen = CreateObject("QRCodeLib.QRCodeGenerator")

' Le contrôle "Image1" doit être un contrôle ActiveX Forms.Image
' Insertion : Développeur > Insérer > Contrôles ActiveX > Image
set ActiveSheet.OLEObjects("Image1").Object.Picture = _
gen.GenerateQRCodeIPic("https://www.example.com", 300, 1, 1)

Set gen = Nothing
End Sub

'--- Exemple 2 : QR code avec niveau de correction élevé ----------------------
Sub ExempleNiveauH()
Dim gen As Object
Set gen = CreateObject("QRCodeLib.QRCodeGenerator")

set ActiveSheet.OLEObjects("Image1").Object.Picture = _
gen.GenerateQRCodeIPic("https://www.example.com", 400, 4, 3)

Set gen = Nothing
End Sub

'--- Exemple 3 : sauvegarder le QR code en fichier PNG ------------------------
Sub ExempleSauvegarde()
Dim gen As Object
Set gen = CreateObject("QRCodeLib.QRCodeGenerator")

Dim bytes() As Byte
bytes = gen.GenerateQRCodeBytes("https://www.example.com", 300, 1, 1)

Dim chemin As String
chemin = "C:\Temp\qrcode.png"

Dim fileNum As Integer
fileNum = FreeFile()
Open chemin For Binary As #fileNum
Put #fileNum, , bytes
Close #fileNum

MsgBox "QR code sauvegardé : " & chemin
Set gen = Nothing
End Sub

'--- Exemple 4 : générer depuis la valeur d'une cellule -----------------------
Sub ExempleDepuisCellule()
Dim gen As Object
Set gen = CreateObject("QRCodeLib.QRCodeGenerator")

Dim contenu As String
contenu = ThisWorkbook.Sheets("Feuil1").Range("A1").Value

set ActiveSheet.OLEObjects("Image1").Object.Picture = _
gen.GenerateQRCodeIPic(contenu, 300, 1, 1)

Set gen = Nothing
End Sub

'--- Exemple 5 : boucle sur une plage de cellules -----------------------------
Sub ExempleBoucle()
Dim gen As Object
Set gen = CreateObject("QRCodeLib.QRCodeGenerator")

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Feuil1")

Dim i As Integer
For i = 1 To 10
Dim contenu As String
contenu = ws.Cells(i, 1).Value

If contenu <> "" Then
' Sauvegarde chaque QR code en fichier PNG numéroté
Dim bytes() As Byte
bytes = gen.GenerateQRCodeBytes(contenu, 200, 1, 1)

Dim chemin As String
chemin = "C:\Temp\qrcode_" & i & ".png"

Dim fileNum As Integer
fileNum = FreeFile()
Open chemin For Binary As #fileNum
Put #fileNum, , bytes
Close #fileNum
End If
Next i

Set gen = Nothing
MsgBox "Génération terminée."
End Sub

'-------------------------------------------------------------------------------
' 5. TABLEAU DES PARAMÈTRES
'-------------------------------------------------------------------------------
'
' Paramètre | Type | Défaut | Valeurs possibles
' -------------|---------|--------|------------------------------------------
' content | String | — | Toute chaîne UTF-8
' sizePixels | Integer | 300 | 100, 200, 300, 400, 500...
' margin | Integer | 1 | 0 (aucune) à 4 (norme recommandée)
' errorLevel | Integer | 1 | 0=L, 1=M, 2=Q, 3=H
'
'-------------------------------------------------------------------------------
' 6. NOTES
'-------------------------------------------------------------------------------
' - Le contrôle Image dans Excel doit être un contrôle ActiveX (Forms.Image.1)
' et non une image insérée via Insertion > Images.
' - Plus sizePixels est grand, meilleure est la lisibilité à l'impression.
' - Privilégier errorLevel=3 (H) si le QR code risque d'être partiellement
' masqué (logo superposé, impression dégradée).
' - La DLL ne crée aucun fichier temporaire — tout est traité en mémoire.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

K
Réponses
5
Affichages
2 K
K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…