Temporisation de macro: pour les + aguerris

  • Initiateur de la discussion Initiateur de la discussion emmanuel75
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

emmanuel75

Guest
Bonjour à tous,
Voilà, je dispose d'un navigateur intégré à excel, qui me permet de traiter les informations des pages visitées sur le web.
Je dispose de plusieurs boutons. Le souci que je rencontre à un certain moment du programme est le suivant:
j'ai un bouton qui me permet de cliquer automatiquement sur un onglet à l'intérieur de la page web
j'ai un autre bouton qui traite les données de la page visitée.
Le PROBLEME EST LE SUIVANT:
Lorsque je demande à mon WebBrowser d'appliquer la macro du premier bouton puis celle du deuxième, l'onglet n'a pas le temps de changer que le traitement du deuxième bouton se fait déjà !!!
Ma procédure se fait à l'intérieur d'un WebBrowser1_DocumentComplete()

J'ai essayé "Application.Waitnow+timevalue..." mais rien n'y fait !!!
Au secours !

Emmanuel
 
Re : Temporisation de macro: pour les + aguerris

Bonsoir à tous,

Pour rappeler le problème auquel je suis confronté, je dispose de deux boutons dans mon premier feuillet, gilbert_RGI m'a judicieusement conseillé d'utiliser la synthaxe "Application.OnTime Now + TimeValue("00:00:15"), "Procedure n°2", ceci afin de bien appliquer l'exécution du deuxième bouton après la fin de l'exécution de mon premier bouton. Mais voilà : j'ai une erreur "variable objet non défini".
Car je le rappelle, je travaille avec l'objet WebBrowser1 dans ma première feuille mais dans les modules, Excel ne me reconnait pas mon objet WebBrowser1 !!!

Comment faire ? Je tourne en rond ! Au secours !

Emmanuel
 
Re : Temporisation de macro: pour les + aguerris

Re...

Cà y est, en essayant une petite astuce trouvé sur le web...pas très glorieux...mais çà fonctionne !!!
Je rédige ce post pour tous ceux qui un jour aurait un besoin similaire de faire patienter une tâche sans utiliser la méthode "WAIT".

Mes deux procédures étaient séparées au départ que par DoEvents, de manière que la première se termine avant que la deuxième ne commence. Mais çà ne suffisait pas.

Une boucle toute simple peut suffire. Dans mon exemple:

Procédure1
For i = 1 To 100000
DoEvents
Next i
Procédure2

Voilà !!!
 
Re : Temporisation de macro: pour les + aguerris

Dans l'exemple,
la boucle for i=1 to 100000 provoque un message d'erreur "Dépassement de capacité"

Par contre en imbriquant deux boucles l'une dans l'autre, on évite le message.

For i=1 to 10
For j=1 to 10000
DoEvents
next j
next i

Bonne soirée
 
Re : Temporisation de macro: pour les + aguerris

Bonjour Emmanuel, Gilbert

regarde peut être le code ci-dessous, si j'ai bien compris... permet d'attendre qu'un "webBrowser" soit chargé....

Code:
Do
doEvents
Loop While webBrowser1.Busy

bonne journée
@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
12
Affichages
644
Retour