Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Manipulation d'Internet Explorer via VB

Le , par Qwazerty

31PARTAGES

32  0 
Salut

Je vous propose un tutoriel sur l’interaction entre Excel VBA et Internet Explorer.

Les sujets développés sont
  • la déclaration des variables
  • la navigation dans le code source d'une page
  • récupérer et saisir des données, agir sur des boutons, des liens, des cases à cocher...
  • le téléchargement de fichiers
  • adapter ses méthodes d'interaction en fonction du contenu de la page
  • un rappel sur l'utilisation des espions et des point d'arrêt


Afin d'y parvenir, vous trouverez dans ce document des exemples concrets mettant en pratique une partie des méthodes fournies par VBA pour manipuler le contenu d'une page Web. Nous développerons par exemple un code visant à obtenir les résultats du loto sportif ou encore la sélection d'un trajet sur le site de la SNCF.

Merci de laisser sur ce topic votre avis sur mon document, toutes les critiques constructives sont les bienvenues .

Si vous avez la flemme de taper, pensez à minima à noter la discussion

Bonne lecture et bon apprentissage

++
Qwaz

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de AlainTech
Modérateur https://www.developpez.com
Le 23/10/2013 à 20:52
Bonjour à tous,

Je l'ai déjà mentionné dans de nombreuses discussion mais il me paraît utile de le dire ici.
Même quand IE a terminé, il se peut que le Document (le contenu de la page) n'ait pas fini de se charger.

Après chaque changement de page, il faut répéter la structure suivante:

Code : Sélectionner tout
1
2
3
    WaitIE IE
    Set IEDoc = IE.document
    WaitDoc IEDoc
avec les 2 procédures d'attente:
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
Sub WaitIE(IE As InternetExplorer)
  Do While Not IE.readyState = READYSTATE_COMPLETE
    DoEvents
  Loop
End Sub
 
Sub WaitDoc(doc As HTMLDocument)
  Do While Not doc.readyState = "complete"
    DoEvents
  Loop
End Sub
Testé et retesté dans de nombreux contextes...
6  0 
Avatar de Qwazerty
Expert éminent https://www.developpez.com
Le 04/03/2012 à 0:08
Salut

Je viens de tester le code et je n'ai aucun soucis avec, le chargement de la page se passe bien et l'initialisation de IEDoc également.

Sans avoir le bug sous les yeux, je vais avoir du mal à t'aider.

Je n'en ai pas parlé dans le tutoriel mais il m'est arrivé d'avoir des soucis sur certaine pages lors d'un grand nombre d'accès à une page, lors par exemple des phases de teste et de recherche de mon code. Je pense que les serveurs doivent être vigilants au nombre d'accès et peut-être même à la vélocité des actions entreprises sur les pages, après tout, on est quand même un peu dans le registre du bot...

Essai de mettre un point d'arrêt sur la ligne qui pose problème, puis regarde si la page est bien chargée "à fond" et le cas échéant, met un espion sur IE.Document pour voir si sont contenu est accessible avant l’affectation à IEDoc.

Si le problème persiste et que tu souhaites de l'aide, je te demanderais juste d'ouvrir un autre topic pour ne pas submerger celui-ci étant donné que le code du tutoriel en lui même n'est pas remis en question.
Je ne vais pas beaucoup sur le forum en se moment, donc envoie moi un MP avec un lien vers ce topic si tu décides d'en ouvrir un.

Merci.

++
Qwaz
4  0 
Avatar de Qwazerty
Expert éminent https://www.developpez.com
Le 13/05/2016 à 23:11
Bonjour

Ce fil de discussion existe pour exposer d'éventuelles erreurs ou méthodes qui concerneraient directement le tutoriel.
Ce fil n'est pas fait pour que chacun puisse y exposer sa problématique personnelle.

@Otman.pro, j'imagine qu'un modérateur est passé sur ce fil de discussion et si le message que tu avais posté était identique à celui que j'ai reçu en MP, je ne suis pas étonné qu'il ait été supprimé.
C'est un forum d'entraide, les gens répondent à des questions, pas à des cahiers des charges.
Il n'y a pas d’animosité dans ce que je dis, il faut juste faire un effort et fournir un début de travail et de réflexion. Pas juste dire, "Il faut que ça fasse, ça, ça et ça. Je suis débutant merci de le faire pour moi".

@mimidodo, seul la première partie de mon message te concerne, la démarche de recherche est visiblement présente, il faudrait juste créer un fil de discussion. Ce fil n'est pas le plus adapté pour poser une question, seuls quelques personnes le suivent et donc les messages qui y sont postés sont très peu visibles (c'est d'ailleurs un problème, car certains messages apportent de réels solutions mais sont noyés dans le flot).
La preuve en est que je n'ai pas vu passer ton message.

Bonne soirée
++
Qwaz
4  0 
Avatar de AlainTech
Modérateur https://www.developpez.com
Le 06/09/2017 à 14:18
Bonjour,

Petit rappel à tous:

Le but de cette discussion est d'annoncer le tutoriel et, éventuellement, poster des commentaires à son sujet.
Pas de poser des questions.
Pour vos questions spécifiques, ouvrez une discussion dans le forum https://www.developpez.net/forums/f6...ros-vba-excel/

Ce forum-ci ne doit servir qu'aux contributions.

Cordialement
4  0 
Avatar de Qwazerty
Expert éminent https://www.developpez.com
Le 09/03/2012 à 18:33
Salut, Merci pour vos encouragements

@flipflap: Merci pour avoir relevé cette coquille, c'est une majuscule qui trainait dans le lien qui posait problème c'est corrigé. Le tutoriel d'Arkham est consultable ici.

Bonne journée
++
Qwaz
3  0 
Avatar de mercatog
Expert éminent sénior https://www.developpez.com
Le 09/03/2012 à 19:59
Bravo pour la clarté du Tutoriel
3  0 
Avatar de Qwazerty
Expert éminent https://www.developpez.com
Le 02/09/2012 à 7:46
Salut

Pour le fichier, c'est possible que j'ai fait une erreur en modifiant les emplacement hier je vérifierais.

Sur IE, pour la copie du code source, il faut (directement sur ta page web) faire un clique droit, afficher la source. Une fenêtre devrait s'ouvrir avec le code complet (il me semble que j'en parle tout au début du tutoriel). Sur cette fenêtre tu peux copier et coller le code, pour l'exploiter, il suffit ensuite d'utiliser un logiciel comme "notepad ++" en sélectionnant le mode d'affichage HTML.

[Edit] Je viens de tester le téléchargement du fichier se passe bien chez moi...
Tu es la 2ème personne à avoir un soucis avec, j'essaierai d'un autre poste. De toutes façon le fichier reprend l'ensemble des codes sources présents dans le tutoriel, il y a juste 2/3 bricoles en plus.
Par contre, il faut être logué pour que ça fonctionne, car des modifications on été apportées au niveau du stockage des fichiers accompagnant les tutoriels.
[/Edit]

[Edit2]
Je viens de modifier la construction du lien de téléchargement, peux-tu réessayer, je n'ai fait la modification que sur le tutoriel en ligne, pas sur le contenu dispo hors connexion (pdf, zip et ebook) je les corrigerais plus tard si ça fonctionne comme ça.
[/Edit2]
++
Qwaz
3  0 
Avatar de Qwazerty
Expert éminent https://www.developpez.com
Le 05/04/2013 à 20:27
Salut

Non je ne pense pas mais je ne peux pas le confirmer, par contre le code serait différent, les méthodes ne serait pas les mêmes, il faudrait que Safari mette à dispo une DLL contenant les méthodes pour communiquer avec lui.

En cherchant vite fait Safari + vba sur google, j'ai vu des codes qui utilisent du script apple mais ça semble limité (?).

Bon courage

++
Qwaz
3  0 
Avatar de AlainTech
Modérateur https://www.developpez.com
Le 20/12/2013 à 11:47
Bonjour à tous,

Pour ceux qui reçoivent l'erreur (à partir de IE8)
Erreur Automation : L'objet invoqué s'est déconnecté de ses clients
et, en debug, dans la fenêtre des variables locale ou des espions
Automation errorThe interface is unknown
il y a 2 options:
  1. Early binding
    Remplacer
    Code : Sélectionner tout
    Set objIE = New InternetExplorer
    par
    Code : Sélectionner tout
    Set objIE = New InternetExplorerMedium
  2. Late binding
    Remplacer
    Code : Sélectionner tout
    Set objIE = CreateObject("InternetExplorer.Application")
    par
    Code : Sélectionner tout
    Set objIE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
3  0 
Avatar de Vadorblanc
Membre expérimenté https://www.developpez.com
Le 03/03/2012 à 19:32
Qwazerty bonjour,
J'ai visualisé ton tuto, ton travail est extraordinaire, ma façon d'encourager de telle initiative ma conduit à rechercher tous tes messages et en apportant mon vote...
MERCI pour le forum.
3  1