QR-factures pour la Suisse

Essaie en manuel ! regarde l'onglet HowTo

Le problème est que tu utilises IE et que le mode copier n'est pas à la même place que chrome, il faudrait donc régler les paramètres de déplacement de la souris

capture d ecran 756

edit : fichier supprimé pour ne pas multiplier les versions

Bonsoir à tous...

par curiosité j'ai essayé les fichiers donnés par Steelson... et je rencontre à la même problématique que Yves....

a savoir un problème au collage... pourtant j'utilise aussi Chrome...

je pense que le problème vient de la résolution d'écran... qui ne doit pas être la même, pour le positionnement du clic de souris... car au lieu de faire "copier l'image" le code fait "rechercher une image avec Google"

je vais me pencher sur le code pour voir comment tu fais le positionnement de la souris pour le clic...

a moins que cela soit lié à mon double écrans...

Fred

Bonsoir Fred,

cela ne m'étonne qu'à moitié ... d'où la possibilité de le faire en manuel !

sinon, j'ai mis dans le dernier fichier les valeurs de x,y de position que l'on peut relever en pixels avec paint sur copie d'écran

Bon avec ton histoire de trouver les pixels avec paint... cela marche pas trop mal....

de mon coté c'est a présent fonctionnel avec ma résolution d'écran....

Je garde cela de côté... car j'ai jamais eut besoin de faire de QRcode... mais peut-être qu'un jour.....

Merci

Fred

Merci pour ton retour !

Salut Steelson,

J'ai arrêté mes essais au travail puisque tu m'avais dit que le problème pouvait être que j'utilisais IE (c'est quoi, c'te bête ?) et comme c'est sur mon ordi privé que je vais faire ce travail, autant mettre toutes les chances de mon côté.

Mais je suis probablement réellement un peu ''pomme'', et je ne m’en sors pas avec ton fichier (j’ai pris le dernier reçu que j’ai enregistré sur ma machine).

Sur la feuille ‘’HowTo’’, je laisse la cellule B18 en ‘’Auto’’. Je viens sur la feuille ‘’main’’ et je lance la macro par Ctrl+q.

Je vois alors l’image ci-dessous, notamment ce petit rond vert dans la forme ‘’Ici QR-Code’’.

capture

Je clique sur ‘’Ok’’ et en finale, je vois ceci :

capture 1

A noter que A) l’image avec ce petit rond vert est maintenant en G2, en beaucoup plus petit (si je l’agrandis, je vois une sorte de colombe blanche dans un rond vert) et B) que le texte quelconque qui était enregistré dans le presse-papier (‘’Texte copié dans Word ») est placé dans une forme de C12 à I14.

J’ai alors refermé le fichier sans enregistrer et l’ai rouvert. Sur la feuille ‘’HowTo’’, j’ai choisi ‘’Manuel’’ en B18, je suis revenu sur la feuille ‘’main’’ et ai lancé le code par Ctrl+q.

Je dois alors choisir comment ouvrir un fichier. Sur l’image ci-dessous, j’ai simplement cliqué ‘’OK’’.

capture 2

Cependant cette dernière étape n’est pas toujours nécessaire ; parfois l’onglet internet s’ouvre automatiquement, bien que je n’ai pas choisi l’option ‘’Toujours utiliser cette application ..........’’.

Un nouvel onglet s’ouvre alors sur mon explorateur internet, mais il n’y a aucune image à copier, juste du texte.

capture 3

Si je retourne alors sur Excel, lorsque j'effectue Ctrl+i, c’est l’ancien contenu du presse-papier qui vient s’inscrire sur la feuille (comme en automatique, mais pas spécialement au niveau de la forme ‘’Ici QR-Code’’.

Je suis absolument désolé de te mettre ainsi à contribution. Dis-moi si tu en as marre.

Cordialement.

Bonjour Yves...

bonjours à tous...

a mon avis une chose est sur... si tu as la fenêtre qui te demande d'ouvrir le fichier avec chrome s'affiche... le reste du code ne peux pas se faire correctement... j'ai eut le problème à la première exécution...

par contre je suis assez surpris de tes impressions écrans... puisque j'ai réussit a faire fonctionner le fichier hier, j'ai été revoir dans le code... et je ne retrouve nulle-part un test en B18 de HowTo pour savoir si il y auto ou manu... et je ne retrouve pas non plus... une msgbox indiquant "en mode auto......"Comme sur ton image...

j'avais seulement adapter la position du clic de souris pour la copie du QRcode depuis chrome...

je remet ici les fichiers que j'avais télécharger dans un des post précédent et qui fonctionnent chez moi....

23qrcode-js-fred.zip (71.34 Ko)

@steelson il ne manquerait qu'une seule chose, c'est de supprimer le QR précédent avant de coller le nouveau si on relance plusieurs fois le code... mais cela je penses que je vais savoir faire... le jour où j'en aurais besoin ...

Fred

Bonjour Yves...

et je ne retrouve nulle-part un test en B18 de HowTo pour savoir si il y auto ou manu

@steelson il ne manquerait qu'une seule chose, c'est de supprimer le QR précédent avant de coller le nouveau si on relance plusieurs fois le code... mais cela je penses que je vais savoir faire... le jour où j'en aurais besoin

@Fred

merci pour ces commentaires

1-

dans le code, il y a

    If [Mode] = "manuel" Then Exit Sub

ce qui fait qu'en mode manuel, tout le reste de l'automatisme est shunté.

C'est dans le dernier fichier posté https://forum.excel-pratique.com/excel/qr-factures-pour-la-suisse-105696/4#p893058

  • dans lequel j'ai mis les 2 modes manuel/auto
  • et dans lequel j'ai mis les valeurs de position d la souris en paramètres dans la feuille HowTo

2-

je vais ajouter la suppression du QRCode si déjà présent

@Yvouille, merci pour ta patience, c'est moi qui suis désolé !

  • Commence par le mode manuel :
    • si tu as bien le QRCode, fais un clic droit manuel > copier et reviens sur la feuille excel - c'était le cas ici pour toi 1726 5f33eea69eb79957442719
    • s'il n'y a pas d'image à copier, c'est que le navigateur choisi n'a pas accepté le javascript !
  • Pour le logo, j'ai voulu "généraliser" à d'autres logos, donc j'en ai pris un au hasard : pour toi, tu le remplaceras par la croix suisse (en donnant le nom logo) ; ici il se redimensionne au 1/8ème de la taille donnée en paramètre du QRCode ... la version strictement manuelle ici https://forum.excel-pratique.com/excel/qr-factures-pour-la-suisse-105696/4#p893058 comporte le logo Suisse que tu avais indiqué au début des échanges
  • Pour le tout auto, comme le dit très bien Fred

si tu as la fenêtre qui te demande d'ouvrir le fichier avec chrome s'affiche... le reste du code ne peux pas se faire correctement

  • En auto, il ne faut pas de question posée ... même pas le choix du navigateur, c'est celui par défaut ! même pas parfois une demande d'activation de javascript. Rien, Nada. Peut-être qu'en changeant htm par html (2 fois) dans le code, il ne le demandera plus. Et pour que ce truc tordu d'un esprit encore plus tordu fonctionne il faut en effet régler les paramètres de la position de la souris (qui sera pilotée par la macro).

Je ne veux pas trop t'embrouiller avec tout cela. Je rappelle que mon seul but était de s'affranchir de google et d'avoir une solution autonome, la version manuelle doit suffire dans ce cas. C'est le cas de celle-ci qui pourra te convenir https://forum.excel-pratique.com/excel/qr-factures-pour-la-suisse-105696/4#p893058 Refais l'essai chez toi avec cette version et avec n'importe quel navigateur dès lors qu'il accepte le javascript pour te donner le QRCode. Et j'espère qu'il accepte tous les caractères que tu emploies dans les factures, comme les métaphoniques umlaut !

Salut Steelson,

Là je ne me sens plus pomme, mais carrément un peu con.

Sur tes conseils, j’ai repris ton fichier fourni mercredi à 15 heures 44. Soit en manuel, soit en automatique, je n’ai pas de QR-Code qui apparaît sur la page internet, juste du texte. Et pourtant il me semble que j’ai Google Chrome comme explorateur internet.

capture

De la quantité de textes qu’il y a sur ce fil, je ne sais plus ce qui est reprise d’un autre échange, ce qui est informations à mon intention, si ça me concerne réellement ou non.

Je dois pouvoir préparer 600 factures QR-Code à un certain moment donné. Que me conseilles-tu ? De partir dans la direction ‘’Manuelle’’ ou ‘’Automatique’’. Je pense que ça ne sert à pas grand-chose que je teste les deux versions, à moins que tu me le conseille également, afin de choisir la meilleure plus tard.

En y allant une étape après l'autre, que me conseilles-tu de faire maintenant ?

Voici l’exemple d’un texte avec lequel je suis totalement largué :

« En auto, il ne faut pas de question posée ... même pas le choix du navigateur, c'est celui par défaut ! même pas parfois une demande d'activation de javascript. Rien, Nada. Peut-être qu'en changeant htm par html (2 fois) dans le code, il ne le demandera plus. Et pour que ce truc tordu d'un esprit encore plus tordu fonctionne il faut en effet régler les paramètres de la position de la souris (qui sera pilotée par la macro). »

Amicalement.

Sur tes conseils, j’ai repris ton fichier fourni mercredi à 15 heures 44. Soit en manuel, soit en automatique, je n’ai pas de QR-Code qui apparaît sur la page internet, juste du texte. Et pourtant il me semble que j’ai Google Chrome comme explorateur internet.

Yves, désolé c'est sans doute de ma faute, mais le fichier fourni nécessitait les fichiers .js ... j'aurais dû fournir le zip complet que voici.

18qrcode-js.zip (114.98 Ko)

Si tu pouvais faire un essai d'abord en manuel !

Ouf, ça va un peu mieux. Merci pour ton suivi et ta patience.

En manuel, je n’ai pas de problème à aller copier le QR-Code sur internet et à le coller sur la feuille Excel par Ctrl+i, y compris les signes spéciaux.

Juste un problème si je n’ai pas effacé l’ancien QR-Code : le deuxième vient alors se placer légèrement décalé vers la droite du premier et la ''croix suisse'' semble rester alignée sur l’ancien QR-Code. Je présume qu’il doit y avoir la possibilité d’effacer cette ancienne forme Excel, mais je n’ai pas trop l’envie de venir m’ingérer dans tes codes.

En automatique, je pense que la copie du nouveau QR-Code ne se fait pas. Lorsque l’écran montre rapidement la page internet, je vois que le texte du QR-Code affiché est bien le dernier, mais c’est bien le dernier contenu du presse-papier qui est collé sur la feuille Excel (image ou texte). Je te rappelle qu’ici en privé, j’ai Google Chrome.

A chaque essai, une nouvelle page internet est ouverte. Est-il possible de les refermer automatiquement ?

A te relire.

En manuel, je n’ai pas de problème à aller copier le QR-Code sur internet et à le coller sur la feuille Excel par Ctrl+i, y compris les signes spéciaux.

Génial, eurêka ! C'était quand même l'objectif d'être autonome, indépendant d'internet. Au plus j'y réfléchis, au plus je pense qu'il ne faut pas balancer sur google des informations du type noms, sociétés, email, téléphone qui sont peut-être dans ton QRCode !

Juste un problème si je n’ai pas effacé l’ancien QR-Code : le deuxième vient alors se placer légèrement décalé vers la droite du premier et la ''croix suisse'' semble rester alignée sur l’ancien QR-Code. Je présume qu’il doit y avoir la possibilité d’effacer cette ancienne forme Excel.

je viens de le faire, c'est ok, j te livrerai une nouvelle version avec juste cette modif

En automatique, je pense que la copie du nouveau QR-Code ne se fait pas. Lorsque l’écran montre rapidement la page internet, je vois que le texte du QR-Code affiché est bien le dernier, mais c’est bien le dernier contenu du presse-papier qui est collé sur la feuille Excel (image ou texte). Je te rappelle qu’ici en privé, j’ai Google Chrome.

Hum ... zut ! Le QRCode est quand même bien affiché ? C'est curieux que ce soit le dernier QRCode qui est collé car j'ai mis dans la macro Application.CutCopyMode = False le presse-papier est donc vide. Le choix clic droit > copier qu'excel commande via la macro est imperceptible !

Peux-tu refaire l'essai : colle n'importe quoi dans le presse-papier, une image par exemple, par Ctrl+c, puis lance la macro en auto !

A chaque essai, une nouvelle page internet est ouverte. Est-il possible de les refermer automatiquement ?

Une solution simple est de déclencher F4, mais cela ferme complètement le navigateur. Sinon il faudrait que je teste si le navigateur par défaut est ouvert et je ne sais pas faire simplement.

Hello Messieurs,

Petite question : suis-je le seul à être hyper sceptique concernant les QR codes ? Je m'en tiens aussi loin que possible.

On n'a aucun moyen de savoir où il va nous emmener.

Ça vous semble être une bonne chose, vous ? (je sais que ce n'est pas le sujet, m'enfin ...)

Bonjour à tous

@Steelson si je peux portée une pierre à l'édifice...

ci dessous une fonction que j'avais élaboré il y a quelques années pour activer la fenêtre de thunderbird si il tournait en arrière plan... sinon je démarrais le programme.

Tu peux peut-être utiliser cette fonction en prenant le processus "chrome.exe" pour tester si chrome est ouvert...

j'ai laissé volontairement les debug.print en commentaire mais pour le développement tu peux les réactiver facilement.. (et en plus mon code est relativement commenté...)

Fred

Function Active_windows_thunderbird() As Boolean
Dim reseau As Object
Dim ordinateur As String
Dim objWsProcess
Dim objProc
Dim Id
Set reseau = CreateObject("WScript.Network")
ordinateur = LCase(reseau.ComputerName)
Set objWsProcess = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & ordinateur).InstancesOf("Win32_Process")
'on va parcourir tous les processus lancer sur la machine
For Each objProc In objWsProcess
    'si le nom du processus est thunderbird on l'active et on quitte
    If objProc.Name = "thunderbird.exe" Then
        'Debug.Print objProc.Name & "," & objProc.executablepath _
            & "," & objProc.Priority & "," & objProc.sessionid _
            & "," & strNameOfUser & "," & objProc.handlecount _
            & "," & objProc.ThreadCount & "," & objProc.processID
        AppActivate (objProc.processID)
        Active_windows_thunderbird = True
        Exit Function
    End If
'    Debug.Print objProc.Name & " - " & objProc.Caption
Next
 Active_windows_thunderbird = False
'si on est arrivé a la fin c'est qu'aucun processus Thinderbird a ete trouvé, il faut donc le lancer et 'activer
'Id = Shell("C:\Program Files (x86)\Mozilla Thunderbird\thunderbird.exe") 'lancer thunderbird
'Id = Shell(chemin) 'lancer thunderbird
'Debug.Print Id
'temporisation obligatoire pour attendre de thunderbird soit lancé
'Application.Wait Now + TimeValue("00:00:06")
'Activation de la fenetre
'AppActivate (Id)
End Function

@ JoyeuxNoël ... Quand j'avais posé la question à un informaticien de ma (grande) société, il m'avait regardé de travers !

Le QRCode, c'est très utile, très très utile. C'est du code barre mais avec beaucoup plus d'infos.

Quelques applications :

  • en cliquant avec un smartphone, être redirigé vers un site (bon ce truc je m'en fous !)
  • transmettre une grosse quantité d'informations quand on initialise un nouveau logiciel, c'est une plateforme intéressant car elle va utiliser les transactions du nouveau système avec tous les contrôles : pas de saisie manuelle avec les risques d'erreur et pas de développement informatique
  • transmettre comme ici les factures avec l'ensemble des informations, c'est demandé par le gouvernement fédéral helvétique https://www.ezv.admin.ch/ezv/fr/home/infos-pour-entreprises/declarer-des-marchandises/le-compte-en-douane-dans-la-procedure-centralisee-de-decompte-de/zahlungen-und-rechnungen.html
  • autoriser les accès
    • je l'ai vu dans certains salons,
    • pour un contrôle de billet (la SNCF utilise un autre code mais c'est pareil)
    • en fait, je l'avais mis en place pour le contrôle d'accès à un site très sécurisé et accélérant le processus d'enregistrement et de validation

Merci Fred, je vais regarder cela. J'ai aussi un code qui liste les fenêtres ouvertes ... qui j'avoue est plus alambiqué que le tien qui me parait plus sain. Et il faudrait l'adapter aux 64bits.

Private Declare Function GetWindowTextLength Lib "user32.dll" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal nMaxCount As Long) As Long
Private Declare Function EnumWindows Lib "user32.dll" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long
Private x&

Private Function EnumWindowsProc&(ByVal hwnd&, ByVal lParam&)
Dim SLength&, Buffer As String, RetVal&
SLength = GetWindowTextLength(hwnd) + 1
If SLength > 1 Then
Buffer = Space(SLength)
RetVal = GetWindowText(hwnd, Buffer, SLength)
If CBool(IsWindowVisible(hwnd)) Then x = x + 1: Cells(x, 1) = Left(Buffer, SLength - 1)
End If
EnumWindowsProc = 1
End Function

Sub WinList()
Application.ScreenUpdating = False
Cells.ClearContents
Cells(1, 1) = "CAPTION"
Range("A2").Select
ActiveWindow.FreezePanes = True
x = 1
EnumWindows AddressOf EnumWindowsProc, 0
Cells.Columns.AutoFit
End Sub
8winlist.xlsm (18.57 Ko)

Le mien tourne sous W10x64.... je viens de faire le test... car il est vrai que je l'avais développer sous W7

EDIT : il y a visiblement un truc qui ne marche pas... car même activer un notepad++ ne marche pas... (et j'ai pas thunderbird pour refaire le test sur ma machine...) je vais donc essayé de revoir cela...

EDIT 2 : bon j'arrive maintenant à activer et écrire dans un Notepad avec mon code (juste un truc a adapter...) mais la même chose en demandant cette fois ci Chrome... Marche pas )

EDIT 3 : Bon ça marche... en fait cela devait marché depuis le début aussi avec chrome... j'ai appris à mes dépends qu'une fenêtre réduite n'est pas activée.. par ce code... seulement si la fenêtre est "juste cachée" par une autre fenêtre...

voici le code réduit au strict minimum.. :

Sub Active_chrome()
Dim reseau As Object
Dim ordinateur As String
Dim objWsProcess
Dim objProc
Set reseau = CreateObject("WScript.Network")
Set oShell = CreateObject("wscript.shell")

ordinateur = LCase(reseau.ComputerName)
Set objWsProcess = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & ordinateur).InstancesOf("Win32_Process")
'on va parcourir tous les processus lancer sur la machine
For Each objProc In objWsProcess
    'si le nom du processus est Chrome on l'active et on quitte
    'Debug.Print objProc.Name & "," & objProc.executablepath _
            & "," & objProc.Priority & "," & objProc.sessionid _
            & "," & strNameOfUser & "," & objProc.handlecount _
            & "," & objProc.ThreadCount & "," & objProc.processID
    If objProc.Name = "chrome.exe" Then
        'debug.print objProc.ProcessID
        'activation de la fenetre...
        oShell.AppActivate (objProc.ProcessID)
    End If
Next
End Sub


et après : je vais jeter un œil à ton fichier...

Fred

@JoyeuxNoël ... petit cadeau en avance https://www.qwant.com/?q=a%20quoi%20sert%20un%20qrcode&t=web

Merci Steelson pour tes liens.

Pour le moment, c'est vrai que je n'ai pas besoin de leurs applications professionnelles donc je ne me suis pas énormément penché dessus. Mais c'est bien la 1ère utilisation que tu as donnée (et que 95% des gens utilisent) qui m'inquiète. Ça te renvoie vers un site. Tu n'as aucune info préalable sur le site où tu vas arriver.

Un lien hypertexte, on peut le décortiquer et certains points peuvent alerter quant au manque de fiabilité du site sur lequel on arriverait. Là, nada. On signe un joli contrat de confiance en scannant le QRcode.

Rechercher des sujets similaires à "factures suisse"