Microsoft 365 Génération de QrCode

Piment

XLDnaute Occasionnel
Bonjour à tous.
Je reviens vers vous pour un problème lié à la génération d'un QRCode avec VBA.
Lorsque je réalise le QRCode (avec l'api.qrserver.com), il beug à la ligne:
VB:
sLink = "https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=" & CelV
Il me dit "Incompatibilité de Type". Or, cette sub a déjà fonctionné sans problème.
Je sollicite donc vos compétences, pour m'aider à résoudre cette énigme (ci-joint un fichier exemple).
Merci à vous.
 

Pièces jointes

  • Exemple (1).xlsm
    18.8 KB · Affichages: 18
Solution
Bonjour wDog66 bonjour.
Merci d'avoir répondu à mon post.
Désolé pour le retard de ma réponse : quelques soucis de connexion.
En effet, la ligne qui posait problème était bien celle qui définissait le "Celv". La ligne "T" est inutile dans mon cas.
Il suffisait tout simplement, comme vous l'avez écrit dans votre post de mettre :
VB:
CelV =.Cells(kr, 1).Resize(, 1).Value
Merci encore et bonne journée à vous.

wDog66

XLDnaute Occasionnel
Bonjour Piment,

Que voulez-vous faire avec ces lignes de code 🤔
VB:
    With Sheets("Essai")
        T = Application.Transpose(Application.Transpose(.Cells(kr, 1).Resize(, 1).Value))
       CelV = T
       sLink = "https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=" & CelV

A mes yeux à ne sert strictement à rien à part vous créer des erreurs

Perso, je ferais simplement
VB:
Sub QRCODEBureau(kr As Long)
  Dim OldCell as Range
  Dim MonTexte As String
  Dim sID As String, sLink As String, sPict As Object
  'retenir la cellule avant changement
  Set oldCell = ActiveCell
  With Sheets("Essai")
    MonTexte = .Cells(kr, 1).Resize(, 1).Value
   ' Vu la quantité de data, il faut une dimension supérieure
    sLink = "https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=" & MonTexte
    .Cells(kr, 2).Activate
   Set sPict = .Pictures.Insert(sLink)
    With sPict
      '--- change la taille
      .Width = 250
      .Height = 250
      '--- change la position
      .Left = .Left + 5
      .Top = .Top + 5
      '--- pour info
      Debug.Print .Name & " ajouté", , .Left, .Top
   End With
    oldCell.Activate
  End With
  '.Cells(kr, 1).RowHeight = 66
  Set sPict = Nothing
End Sub

A+
 
Dernière édition:

Piment

XLDnaute Occasionnel
Bonjour wDog66 bonjour.
Merci d'avoir répondu à mon post.
Désolé pour le retard de ma réponse : quelques soucis de connexion.
En effet, la ligne qui posait problème était bien celle qui définissait le "Celv". La ligne "T" est inutile dans mon cas.
Il suffisait tout simplement, comme vous l'avez écrit dans votre post de mettre :
VB:
CelV =.Cells(kr, 1).Resize(, 1).Value
Merci encore et bonne journée à vous.
 

Discussions similaires

Statistiques des forums

Discussions
313 320
Messages
2 097 134
Membres
106 848
dernier inscrit
toufk