Sans le premier
Sleep, grande chance d'un loupé lors du premier
KeyLoop et avec - si bien paramétré - c'est plus rapide !
A de rares occasions sans les autres
Sleep 100 j'ai eu de mauvaises surprises …
Pour la nouvelle version ci-dessous, comme ce post me servira d'exemple pour de futures discussions,
voici le détail des temporisations nécessaires dans le code :
• Ligne n°13, la constante SC sert comme
TimeOut général, variable selon la puissance de l'ordinateur et de la connexion …
Elle sert à éviter de boucler indéfiniment en cas de souci pour récupérer la main car pas d'utilisation de
DoEvents.
Pour la calculer, il faut compter le temps de la primo ouverture d'IE, ajouter le temps lors de la validation de l'adresse
de la page Web afin que le bouton
Télécharger soit disponible, après le paramétrage de la page et
la validation du bouton
Télécharger ajouter le temps d'apparition du bandeau puis ajouter enfin le temps d'ouverture
du fichier dans Excel et évidemment inclure une marge en cas d'un éventuel ralentissement.
De mon côté le tout prenant environ cinq secondes, je l'ai fixée à 10 …
En cas d'insuffisance de cette constante, une erreur 1001 à 1004 est affichée dans la fenêtre
Exécution du VBE
indiquant ainsi la position du déclenchement dans le code.
Toutefois si le site rame ponctuellement, cette même erreur se déclenchera aussi …
• La ligne n°45 conditionne l'interprétation du premier coup de la séquence de touches pour ouvrir le fichier dans Excel.
Si elle est insuffisante, un temps d'arrêt est observable sur le bandeau avant sa disparition : alors dans ce cas
l'augmenter de 100 et tester de nouveau … Un ordinateur portable i5 par défaut en vitesse adaptative du processeur
avec IE9 passe bien à 400 mais si son processeur est configuré à pleine puissance permanente, il peut y avoir un loupé
lors de la première séquence marquant donc un temps d'arrêt avant de poursuivre; à 500 plus de souci …
Un autre portable i7 & IE11 en économie d'énergie (vitesse réduite du processeur) passe à 100
mais pas en pleine puissance, là avec 200 c'est bon : donc il vaut mieux prévoir un poil plus qu'un poil pas assez !
Si la pause est suffisante, à peine le temps de voir apparaître IE qu'il disparait aussitôt,
cet effet
flash confirmant l'interprétation de la séquence de touches du premier coup …
• La variable D de la ligne n°76 est le moment où est de nouveau lancé
KeyLoop en cas de loupé.
Actuellement c'est un délai de 1,7 seconde (voir le commentaire à la fin du code pour le calcul).
Ce délai doit être supérieur au temps nécessaire au téléchargement du fichier dans Excel et
à l'exécution de l'évènement
Workbook_Deactivate sinon cela ralentira d'autant la procédure …
En conclusion, les pauses bien paramétrées accélèrent le processus, si, si !
Partager