Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/10/2011, 12h01   #1
Futur Membre du Club
 
Homme Benjamin GUY
Inscription : juillet 2011
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme Benjamin GUY
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Secteur : Alimentation

Informations forums :
Inscription : juillet 2011
Messages : 32
Points : 18
Points : 18
Par défaut IE attendre chargement JavaScript

Bonjour à tous.

Je suis en train de coder une macro qui intéragie avec une page internet explorer mais j'ai un soucis.

Pour attendre la fin de chargement d'une page j'utilise le code suivant :
Code :
1
2
3
4
5
dim ie as InternetExplorer
 
Do Until ie.ReadyState = READY_COMPLETED
DoEvents
Loop
A l'intérieur du code HTML de la page j'active un JavaScript qui me marque visuellement dans la fenêtre IE "chargement en cours" puis s'éxecute.
Problème la page internet est déjà entièrement chargée pour IE et on ne rentre pas dans la boucle ci-dessus puisque Do Until ie.ReadyState = READY_COMPLETED est déjà vrai!

J'ai cherché sur pas mal de post en vba mais je n'ai pas trouvé de solutions.

Si quelqu'un peut me donner un petit coup de pouce ce n'est pas de refus.

Bonne journée à tous, cordialement.
modenofx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 12h05   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Regarde (sans garantie) du côté de
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 05/10/2011, 13h14   #3
Expert Confirmé
 
Avatar de Godzestla
 
Homme
Chercheur de bonheur
Inscription : août 2007
Messages : 2 256
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de bonheur
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 2 256
Points : 2 979
Points : 2 979
Bonjour,

essaie comme ceci :

Code :
1
2
3
Do While IE.readyState <> READYSTATE_COMPLETE
    DoEvents
Loop
(Code fourni par Qwazerty)
__________________
(\ _ /) Cordialement G@dz
(='.'=)

(")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.
Godzestla est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/10/2011, 10h21   #4
Futur Membre du Club
 
Homme Benjamin GUY
Inscription : juillet 2011
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme Benjamin GUY
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Secteur : Alimentation

Informations forums :
Inscription : juillet 2011
Messages : 32
Points : 18
Points : 18
Bonjour mercatog et Godzestla,

Tout d'abord merci à vous deux et je m'excuse pour une réponse aussi tardive de ma part.

J'avais déjà essayé d'attendre le chargement javaScript avec :
Code :
1
2
3
Do While IE.readyState <> READYSTATE_COMPLETE
    DoEvents
Loop
Malheureusement pour moi sans succès.

J'ai aussi pensé à l'usage de ie.busy mais comment fonctionne cette propriété exactement? J'ai du mal à la cerner!
modenofx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2011, 10h33   #5
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Bonjour (sans garantie)
tant que ton IE est occupé, on attends
Code :
1
2
3
Do While IE.busy
    DoEvents
Loop
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 07/10/2011, 12h07   #6
Futur Membre du Club
 
Homme Benjamin GUY
Inscription : juillet 2011
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme Benjamin GUY
Localisation : France, Seine Maritime (Haute Normandie)

Informations professionnelles :
Secteur : Alimentation

Informations forums :
Inscription : juillet 2011
Messages : 32
Points : 18
Points : 18
Bonjour mercatog,

J'ai effectivement écris cette boucle mais ça ne fonctionne pas!

J'avais vu sur d'autres post que l'on pouvait mettre busy = true ou false et je pensais avoir mal codé ma boucle à cause de ça.

J'ai réussi à attendre le chargement du javascript en pointant sur l'élément "chargement en cours" et en utilisant nothing, une condition et une boucle.

Bonne journée.
modenofx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h09.


 
 
 
 
Partenaires

Hébergement Web