QR-factures pour la Suisse

Bonjour

Quelqu'un a t'il réussi à créer un script vba ou PHP de qr-facture suisse?

Je ne parle pas d'un simple qr, mais bien du qr officiel...

Merci, Cédric

B onjour,

C'est quoi la différence entre un QR et un QR officiel ?

Pour ma part, j'avais créé un QR avec le logo imposé.

Salut Steelson,

Voilà, le grand jour est arrivé Depuis le 1er juillet 2020, les Suisses peuvent utiliser des QR-Factures.

Un matin, j'en ai préparé une et j'ai tenté de verser 10 francs à mon association depuis un petit office postal régional. Le protocole d'erreur était long comme mon bras. Ce protocole et le postier m'ont conseillé de m'adresser au fournisseur de la facture !! De retour à la maison, j'ai tenté de corriger la chose et suis retourné à la poste. Le protocole d'erreur avait bien diminué de moitié. La troisième fois que je suis entré à l'office postal ce matin-là, les 3 employés présents avaient un petit sourire moqueur au coin des lèvres mais après quelques secondes, je n'avais plus mes 10 balles en poche, ils étaient arrivés à bon port

Il est donc temps pour moi de passer à l'étape supérieure. D'ici quelques temps, je vais devoir préparer les 6 à 700 factures annuelles et j'ai un souci au niveau du Google API.

Tu avais écrit une fois :

Et si quelqu'un a accès à un serveur lamp (linus, apache, mysql, php) je peux le conseiller pour qu'il soit autonome !

mais je ne sais absolument pas ce qu'il y aurait à entreprendre à ce niveau ou en quoi l'API de Google n'est pas suffisamment fiable pour un grand nombre de factures. Peux-tu me dire, en vulgarisant un max, ce que tu me conseilles d'entreprendre ?

Bonnes salutations.

Bonne nouvelle Yves ! Essai réussi, bravo ...

Je ne pense pas que l'API de google soit "morte", ni même payante, mais j'ai déjà vu google à l'oeuvre avec les maps : a priori en tant qu' "ancien" utilisateur déclaré je continuais à bénéficier du service gratuit, mais in fine ils ont fini par couper la gratuité ! Et du reste, j'avais fermé mon auto-entreprise. Ce n'est pas (encore) le cas.

Je te prépare un topo sur mon expérience pour ce midi...

Voici mon expérience ...

J'ai trouvé cet utilitaire gratuit : https://sourceforge.net/projects/phpqrcode/files/ écrit en php. Je l'ai mis sur

  • un serveur que je loue chez OVH-France prêt à fonctionner donc simple
  • un serveur à domicile basé sur une carte Pi (moins de 50€), monté sur une config linux avec apache/mysql/php (là il faut mettre les mains dans le cambouis)

Dans les 2 cas, j'ai décompressé le fichier source que j'ai installé sur chacun. J'ai juste ajouté un fichier php pour avoir un lien direct avec le fichier image généré (et du coup la macro est la même que pour l'api de google).

<?php 

    include('qrlib.php'); 

    $param = $_GET['id']; 

    // we need to be sure ours script does not output anything!!! 
    // otherwise it will break up PNG binary! 

    ob_start("callback"); 

    // here DB request or some processing 
    $codeText = $param; 

    // end of processing here 
    $debugLog = ob_get_contents(); 
    ob_end_clean(); 

    // outputs image directly into browser, as PNG stream 
    QRcode::png(stripslashes($codeText));

?>

Et cela fonctionne sur l'un comme sur l'autre. Le serveur loué est plus confortable bien sûr, mais il a un coût mensuel (comme il me sert aussi à d'autres choses). https://www.top10hebergeurs.com/top10france.htm

Si pour ton asso tu as déjà un serveur mutualisé, c'est une possibilité.

C'est la solution que j'ai fait implémenter par les informaticiens de mon ex-employeur pas très futés (les informaticiens) sur une application sensible de contrôle d'accès de visiteurs à un site protégé.

On peut maintenant regarder d'autres pistes :

...

J'ai enlevé tout ce qui était des code barres dans le code VBA ... et a priori cela fonctionne ! C'est du dessin "pixel" par "pixel" groupé en une seule image

J'ai juste ajouté pour une utilisation plus facile :

Function QRCode(cel As Range)
    Call RenderQRCode(Application.ActiveSheet.Name, "" & Replace(Application.Caller.Offset(0, 1).Address, "$", "") & "", cel.Value, "mode=M", False)
    QRCode = ">>"
End Function

L'image se met calée en haut et à gauche de la cellule de droite appelant la fonction.

Il faudrait tester un peu plus ... si c'est ok c'est de la pure folie ce code !

Discussion ici : https://stackoverflow.com/questions/41404226/why-does-this-vba-generated-qr-code-stutter-barcode-vba-macro-only


edit : in fine, excel plante dès lors que je tente d'injecter une grand partie de données, c'est donc à réserver à des adresses url ou mail.

Peux-tu me dire, en vulgarisant un max, ce que tu me conseilles d'entreprendre ?

  1. On pourrait installer php sous windows via https://www.apachefriends.org/index.html > je vais retenter l'expérience
  2. Pour python (que j'ai déjà sous windows = facile à installer), je n'ai toujours pas compris installer le générateur de qrcode développé sous python !
  3. Il existe aussi un code javascript qui crée un QRCode sans avoir besoin d'un serveur distant https://davidshimjs.github.io/qrcodejs/. Je vais faire un démonstrateur à partir d'excel pour voir si c'est une alternative crédible. Mais il n'y a pas de raison !

Le but étant d'être autonome avec des outils standards sous windows sans avoir à monter un serveur.

Il existe aussi un code javascript qui crée un QRCode sans avoir besoin d'un serveur distant https://davidshimjs.github.io/qrcodejs/. Je vais faire un démonstrateur à partir d'excel pour voir si c'est une alternative crédible. Mais il n'y a pas de raison !

Voici une solution tout à fait autonome, sans besoin d'accès internet, basée sur le code javascript (caractères spéciaux non pris en compte, comme les accents) !

edit : fichier supprimé pour ne pas multiplier les versions

Bonjour,

le +1 ne fonctionne pas sinon tu en aurais eu un

J'ai tenté ma chance pour récupérer le qrcode du fichier html sans succès.
Du coup j'ai fait une recherche 'qrcode clipboard' et je suis tombé sur ce projet qui a l'air intéressant : génération du qrcode depuis le texte du presse-papier, et à priori on peut l'enregistrer dans un fichier.
Pas trop le temps ni la motivation de tester, de plus il est probable que tu t'en tires mieux que moi
https://github.com/codebude/QRCoder/
Je te met aussi l'exe que j'ai trouvé. C'est tellement fouillis Github que je ne retrouve pas où est le lien.

28clipboardtoqr.zip (33.12 Ko)

eric

Merci Eriiiic pour ton essai ! J'aimerais bien comprendre du reste ...

  1. est-ce que la page html s'est lancée correctement avec un QRCode ?
  2. si NON, as-tu dézippé le fichier avant de lancer ? sinon le html ne pourra pas aller chercher les sources .js
  3. si OUI, comment as-tu copié l'image ? en sélectionnant toute la page, ou par un clic droit sur l'image ?
  4. si clic droit sur image, quel est ton navigateur par défaut ? et as-tu essayé de copier dans paint ou équivalent ?

je regarde aussi ta trouvaille car il y a peut-être une autre solution de ce côté

edit : la solution que tu as trouvée est un fichier .exe que l'on pourrait lancer à partir d'excel, mais je n'ai pas compris comment récupérer l'image ! a priori je ne l'avais pas retenue pour ces 2 raisons; dernier point, je ne sais pas comment lancer à partir d'excel. Par contre, je conserve l'outil car c'est très intéressant quand on l'utilise sans interface !

1) Je pense qu'on s'est mal compris.
C'est le +1 ici sur le site qui ne fonctionne pas
2) sans objet
3) clic-droit (Chrome)
4) collé dans paint ok aussi

eric

Donc cela fonctionne ? parce que tu avais écrit ceci :

J'ai tenté ma chance pour récupérer le qrcode du fichier html sans succès.

Ce que je cherche avant tout, c'est un code ouvert, donc VBA pur, php, python ou javascript, ...

  • php cela fonctionne très bien, mais il faut un serveur (et je n'ai pas réussi à mettre xamp sur windows, d toute façon trop complexe)
  • python, cela devrait fonctionner, j'ai python sur mon pc, mais je n'ai pas compris comment installer les fichiers .py, ou plutôt pas trouvé le fameux qrcode.py
  • VBA pur, cela fonctionne sur un jeu d données réduit et c'est hyper long
  • javascript ... là c'est pas mal ! bien que je n'aie pas réussi à récupérer en auto l'image

conclusion : aujourd'hui en open source on a

  1. php (mais il faudrait éviter d'utiliser l'api de google, ce qu j'ai fait personnellement)
  2. javascript

Donc cela fonctionne ? parce que tu avais écrit ceci :

eriiic a écrit :

J'ai tenté ma chance pour récupérer le qrcode du fichier html sans succès.

oui, pour éviter le Ctrl+i et que tu puisses tout automatiser.
Pour une facture par ci par là ça va, mais si un utilisateur en 150 à réaliser...
eric

... et je me suis cassé la tête tout le dimanche pour y trouver un remède ! je sais manipuler la souris en auto à partir d'excel, faire un clic droit, mais il n'y a pas de raccourci clavier pour enregistrer l'image ! pfft

en fait, l'image est encodée (data-URI), et il faudrait pouvoir utiliser cela dans excel !

Donc cela fonctionne ? parce que tu avais écrit ceci :

eriiic a écrit :

J'ai tenté ma chance pour récupérer le qrcode du fichier html sans succès.

oui, pour éviter le Ctrl+i et que tu puisses tout automatiser.

Pour automatiser complètement (mais j'avoue que ce n'est pas stable, c'est plus un exercice de style ... j'y ai mis des tempos d'une part et ensuite réglé la position du curseur pendant l'opération). Il n'y a pas (encore) ici le logo Suisse au milieu. On ne touche à rien pendant l'opération (pas de mouvement de souris).

edit : fichier supprimé pour ne pas multiplier les versions ...

Salut Steelson,

Merci infiniment pour tout ce temps que tu me consacres

Je n'ai pas eu trop le temps de m'occuper de ce problème ces derniers temps et je n'ai suivi que de loin les dernières discussions qui me passent bien au-dessus de la tête

J'ai voulu m'y mettre aujourd'hui, mais j'avoue nager passablement.

Mon association n'a pas de serveur mutualisé, je travaille seul sur mon ordinateur privé.

J'ai tenté de tester l'un ou l'autre des fichiers Excel proposés, mais je ne sais pas avec lequel il faudrait aller plus loin.

Serais-tu intéressé à voir en privé mon fichier réel et l'état actuel de ma facturation ''à l'ancienne'' ainsi que mes premiers essais de QR-Facture ?

Je dois réaliser une fois par année une facturation à tous les membres (environ 600 factures). En quoi la solution Google risque d'être un problème ? Je risque d'être stoppé au milieu du traitement ?

Le reste de l'année, je dois environ générer en moyenne une à deux factures par semaine. Ces derniers jours, j'ai envoyé mes 5 ou 6 premières QR-Factures.

Que me conseilles-tu de faire réellement ?

Amicalement.

Bonjour Yves,

essaie le dernier en date en te mettant d'abord en manuel et dis moi si tu arrives à le faire fonctionner

ensuite on verra pour adapter (je ne suis pas sûr que tu aies besoin d'aide !)

Salut Steelson,

Merci pour ta réponse. Je suis sur ma machine au travail.

J'ai copié-collé tes 3 fichiers (1 x .xlsm et 2 x .js) dans un dossier de mon arborescence.

Je lance la macro par Ctrl+q, le rectangle orange avec le texte "Faire Ctrl+i ou ……" apparait un court instant sur Excel, puis un QR-Code est visible à l'écran, selon l'image ci-dessous. Après quelques secondes, ça revient sur Excel et ça bugge (erreur 1004) sur la ligne ActiveSheet.Paste.

1

Sans nouvelle de ta part d'ici là, je ferai les mêmes essais en privé ce soir ou demain soir.

Bonne journée.

Rechercher des sujets similaires à "factures suisse"