QR-factures pour la Suisse

A toutes fins utiles, pour ceux qui ont suivi ce fil, voici une solution multiples QRCode sur le même fichier.

Bonjour,

Votre solution avec Python est fort intéressante. J'ai téléchargé votre fichier ainsi que les différentes applications (comme je suis en 64, j'ai téléchargé la version 64 de Python) et modifié l'emplacement des fichiers. Lorsque je lance la procédure, j'ai une erreur qui survient qui est la suivantes :

erreur

Pouvez-vous m'apporter votre aide pour résoudre ce problème ?

En vous remerciant vivement par avance, je vous adresse mes meilleures salutations.

Sandra

As-tu bien mis à jour ces 2 constantes par rapport à ton PC ?

Const PythonExe = """C:\Users\cathe\AppData\Local\Programs\Python\Python38-32\pythonw.exe"""
Const repertoirePyQRCode = "C:\Users\cathe\Documents\PyQRCode-1.2.1"

peux-tu faire une copie du contenu de ton répertoire nommé ici après ta modification bien sûr

repertoirePyQRCode 

Merci Steelson de m'apporter ton aide.

Oui, j'ai bien mis à jour les deux constantes :

Const PythonExe = "C:\Users\Phbr\Desktop\Python_64\pythonw.exe"
Const repertoirePyQRCode = "C:\Users\Phbr\Documents\PyQRCode-1.2.1"

Et voici la copie de repertoirePyQRCode. Comme on peut le voir, aucune image QR code n'est générée et j'ai bien placé le fichier dans le même répertoire. Est-ce bien correct ?

capture2

ok parfait, ton diagnostic est le bon, l'image n'a pas été générée

le fichier myQRCode.py est bien présent et a semble-t-il été bien lancé puisque le dossier pyqrcode a aussi le même horodatage

  1. peux-tu double-cliquer sur myQRCode.py et voir s'il génère à partir d'ici d'une image (je n'y crois pas trop, ce serait contraire à ce que l'on vient de voir)
  2. peux-tu éditer via notepad ou autre logiciel texte le plus simple possible (pas word) le fochier myQRCode.py ?
    1. soit il y a eu un problème lors de la génération du fichier
    2. soit python 64 réagit différemment

Eh bien tout est en ordre, j'ai réinstallé Python 3.8 et l'ai mis dans le répertoire proposé lors du téléchargement et non sur le bureau et maintenant tout est en ordre ! Merci beaucoup de ton aide ! Et c'est vraiment bien de pouvoir bénéficier de cette solution autonome sans Google ! Merci encore !

Sandra

Et c'est vraiment bien de pouvoir bénéficier de cette solution autonome sans Google ! Merci encore !

et ne pas envoyer d'infos confidentielles qui seraient enregistrées par la NSA

Bonjour,

A la recherche d'une solution pour créer une facture compatible Swiss QRCode, j'ai suivi les aventures de ce post. Ce matin, j'ai installé le VBA de Steelson avec le Python etc.

Et ça fonctionne. Bon maintenant je dois intégrer tout cela dans le programme facturation que j'ai créé depuis plusieurs années, donc mettre les mains dans le cambouis.

En tout cas un grand merci aux passionnés qui ont contribué à la réalisation de ce projet. Je vais me mettre à la planche et avancer. Je viendrai probablement vers vous pour une info complémentaire et pour vous dire quand cela marchera.

Merci encore.

Cordiales salutations. Cloburk

Bonjour et bienvenue,

et merci pour ce retour, c'est sympa

si tu as des soucis, n'hésite pas à revenir

Bonjour,

Deux éléments qui m'ont surpris.

1. Depuis toujours, j'ai tout mes fichiers de développement sur un autre drive que c: en l'occurence D: et ce qui est en production sur E:

Donc je mets Le fichier excel et les fichiers sur "D:\QRCodePy\PyQRCode-1.2.1"

Const PythonExe = """C:\Users\clalr\AppData\Local\Programs\Python\Python38-32\pythonw.exe"""
Const repertoirePyQRCode = "D:\QRCodePy\PyQRCode-1.2.1"

Les premiers tests fonctionnent parfaitement, mais après redémarrage du PC je refais le test et là j'ai une erreur 1004 à la ligne:

ActiveSheet.Pictures.Insert("myQRCode.svg").Select

Après avoir galéré un moment, j'ai constaté que les deux fichiers qui devaient être killés au début du process ne l'étaient pas.

J'ai ajouté une ligne au début de process CHDrive = "D".

Et là tout remarche.

2. Là une question: Est-il possible d'insérer le QRCode dans une image vide ? Voila pourquoi : dans la mise en page de mon prog de facturation, je voudrais éviter de modifier les colonnes car cela impacterait le déroulement de mon programme.Bon si il faut vraiment, je le ferai mais c'est un gros travail et de nombreux tests à faire ensuite.

D'autre part une zone texte et/ou une zone image peut être placée de manière exacte pour respecter les normes de mise en page exigées par le réglement des SWiss QR.

Je peux créer un rectangle vide qui s'appelle "Rectangle 4", mais je ne réussis pas à l'associer à la variable "iciQRCode"

Une idée serait la bienvenue.

Merci et belle soirée.

Cloburk

1.

J'ai ajouté une ligne au début de process CHDrive = "D".

Et là tout remarche.

2.

Là une question: Est-il possible d'insérer le QRCode dans une image vide ?

  1. merci pour cette info, je n'avais pas rencontré le cas sur ma surface pro car (contrairement à ce que je faisais auparavant) je n'ai pas partitionné mon disque SSD pas très grand pour les config actuelles (mais in fine suffisant pour moi qui ne fait pas particulièrement d photo ou musique)
  2. à voir ...
    1. avec la version javascript, c'est exactement cela qui se passe
    2. avec la version python, il faudrait tester, j'ai pris en réalité au plus simple, mais si tu connais bien VBA essaie, sinon je le ferai mais je dois changer d'ordi car il faut excel 2016 pour digérer les images vectorielles

Est-il possible d'insérer le QRCode dans une image vide ? Voila pourquoi : dans la mise en page de mon prog de facturation, je voudrais éviter de modifier les colonnes car cela impacterait le déroulement de mon programme.Bon si il faut vraiment, je le ferai mais c'est un gros travail et de nombreux tests à faire ensuite.

D'autre part une zone texte et/ou une zone image peut être placée de manière exacte pour respecter les normes de mise en page exigées par le réglement des SWiss QR.

Il y a peut-être une solution sans tout chambouler de part et d'autre.

Le "rectangle" que tu souhaitais placer quelque part, exactement comme le souhaite l'administration fédérale, a bien une position précise par rapport à une cellule quelconque (que tu peux choisir) ... et donc on pourrait à partir de cette cellule choisie par toi placer le QRCode en indiquant un delta en x et en y

Tu modifies alors le programme en indiquant ls valeurs par rapport à une cellule que tu auras nommée iciQRCode

    ' lieu de mise en place du QRCode
    With Range("iciQRCode")
        yq = .Top + deltaY: xq = .Left + deltaX
    End With

deltaX et deltaY sont à indiquer selon la mise en page voulue

Est-ce clair, est-ce faisable de ton côté ?

Hello Steelson

Oh oui c'est faisable et ça marche. Je peux maintenant ajuster au mm la position du QR Code. Merci pour l'astuce.

Une question de plus : Le QRCode une fois imprimé fait 40mm de côté. Le règlement demande 46mm. (je sais c'est pas grand-chose mais il y a des pointilleux !!!🤣🤣)

Où sont fixées les deux variables shaperange .width et .height ? Si j'ai bien compris ce sont ces deux variables qui déterminent la dimension du QRCode.

Merci encore et bonne soirée

Cordialement

Cloburk

Hé bien, ce n'est pas moi, c'est python qui détermine en fonction du scale (scale 3 ici) et de la quantité d'informations. Autant en php ou en javascript j sais comment régler, pas ici.

Mais pas d'inquiétude, cela passe : fais des essais. Au pire on pourra redimensionner. l'image dans le code VBA mais j'ai peur des déformations de pixels.

J'ai essayé de mettre .width + 10 et .Height + 10 ( 10 représentant environ 3 mm)

Mais cela ne marche pas, juste le logo central n'était plus à la bonne place.

Les essais que j'ai fait chez moi avec mon appli de paiement fonctionnent, mais je ne sais pas si les instances officielles ne vont pas tousser la-dessus.

Merci, je vais continuer et dés que j'ai quelque chose qui tienne vraiment la route je vais demander le test officiel chez SIX.

Bon weekend

Cordialement

Cloburk

il faudrait mettre ceci

    ' importation de la nouvelle image QRCode
    ActiveSheet.Pictures.Insert("myQRCode.svg").Select
    With Selection.ShapeRange
        .Width = .Width + 10
        .Height = .Height + 10
        wq = .Width: hq = .Height: .Left = xq: .Top = yq: .Name = "myQRCode"
    End With

mais j'ai peur de la distorsion des pixels ... quoique le QRCode est assez tolérant puisqu'il comporte des redondances !

Merci, je vais essayer, mais pas ce soir !!!!!

Bon weekend

Cloburk

Bonjour,

Pour ma part et via l'enregistreur de macro, voici les lignes de code ajoutées :

Après l'importation de la nouvelle image QRCode :

'met le QRCode aux bonnes dimensions (ajout du 21.09.2020)
With ActiveSheet.Shapes.Range("myQRCode")
.Height = 146.2677165354
End With

Puis après la mise en place du logo

'aligne le logo et le QR (ajout du 21.09.2020)

With ActiveSheet.Shapes.Range(Array("myQRCode", "logo"))
.Align msoAlignMiddles, msoFalse
.Align msoAlignCenters, msoFalse
End With

J'ai passé le QR au test de validation de Six et résultat : 0 erreur

Bonne soirée

Sandra

'met le QRCode aux bonnes dimensions (ajout du 21.09.2020)

With ActiveSheet.Shapes.Range("myQRCode")
.Height = 146.2677165354
End With

et le width se met automatiquement ?

et pour les chiffres après la virgule, tu est sûre de ton dernier 4 - lol

'aligne le logo et le QR (ajout du 21.09.2020)

With ActiveSheet.Shapes.Range(Array("myQRCode", "logo"))
.Align msoAlignMiddles, msoFalse
.Align msoAlignCenters, msoFalse
End With

très intéressant ! merci pour ce partage !

Hello,

Résultat des tests:

Avec les commandes .width = .width + 10 et .heigth = .heigth + 10, je peux effectivement augmenter la taille du QRCode. Les pixels à l'intérieur sont également augmentés.

Bon mais ça passe ( dans mes tests interne (smartphone,simulation de paiement et l'outil PAYEye également))

J'ai testé également avec les suggestions de Sandra (merci ) ça marche également. A l'écran j'ai un carré impec. mais lors de l'impression, la hauteur est réduite.

Paramètre de l'impression: Impression en taille réelle, résultat Largeur 46mm hauteur 43mm Pourquoi ? je ne sais pas. Mais cela passe également en test interne.

Comme dans mon appli, je passe toujours par un PDF (dû à l'organisation qui permet d'envoyer les impressions après la période de facturation) je me retrouve également avec un carré pas parfait Hauteur plus faible que largeur.

Je n'ai pas encore compris pourquoi mais je cherche.

Merci à tous. Je reviendrai lorsque j'aurai des nouvelles.

Cordialement

Cloburk

Rechercher des sujets similaires à "factures suisse"