Manipulation d'Internet Explorer via VB

Le , par Qwazerty, Expert éminent
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


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de YOBEN YOBEN - Nouveau Candidat au Club http://www.developpez.com
le 25/10/2015 à 21:35
Bonjour,

Merci Qwazerty pour ce tuto très bien construit et très pédagogue !

Je suis débutant et j'ai pour ma part téléchargé le fichier source que tu as mis à disposition, et malgré avoir coché les 2 références j'ai un message d'erreur de compilation qui apparaît en m'indiquant de mettre à jour le code contenu pour pouvoir etre utilisé sur les systèmes 64 bits. aussi ce message indique de mettre a jour les instructions Declare, puis de les marquer avec l'attribut PtrSafe.

Quelqu'un a t il eu le meme problème que moi ? merci de vos réponses
Avatar de kiki29 kiki29 - Expert éminent sénior http://www.developpez.com
le 26/10/2015 à 0:07
Salut, à lire et appliquer : Développer avec Office 64 bits, d'autant plus que même Microsoft déconseille l'installation d'une version 64 bits d'Office.

extrait :
Office 32 bits est recommandé pour la plupart des utilisateurs

Nous recommandons la version 32 bits d’Office pour la plupart des utilisateurs, car elle offre une plus grande compatibilité avec la plupart des autres applications, en particulier les compléments tiers. C’est la raison pour laquelle la version 32 bits d’Office 2013 est installée par défaut, même sur les systèmes d’exploitation Windows 64 bits. Sur ces systèmes, le client Office 32 bits est pris en charge en tant qu’installation Windows-32-on-Windows-64 (WOW64). WOW64 est l’émulateur x86 qui permet l’exécution de façon transparente des applications Windows 32 bits sur les systèmes Windows 64 bits. Cela permet aux utilisateurs de continuer à utiliser les contrôles ActiveX et les compléments COM Microsoft avec la version 32 bits d’Office.
Avatar de mimidodo mimidodo - Nouveau Candidat au Club http://www.developpez.com
le 02/11/2015 à 13:05
Bonjour à tous,
Merci beaucoup pour le tuto. J'ai commencé a utiliser IE en dehors d'un userform et en m'inspirant des codes de ce tuto, je suis face à un petit souci:
_Je déclare oNav et je navige sur un URL ..... là cava
_j’attends le chargement de la page ... OK
_Je déclare oDoc = oNav. document ..... là cava
_Je rempli des champs dans la page pour un login et je clic sur le bouton login,..... toujours Bon
_J'attends le chargement pour constater que je suis bien enregistré sur la page .... C'est bon
_Je vide oDoc= Nothing, puis je remet oDoc = oNav.document pour m'assurer que oDoc est cette fois le document de la nouvelle page bien fraîche mais là c'est pas le cas en vérifiant les éléments dans oDoc, j'ai toujours le document d'avant. Pire, je n'arrive pas à quitter oNav si un nouvel URL s'ouvre sur celui ci.

Je sais que le souci n'est pas si difficile mais c'est dingue que je n'arrive pas à comprendre. Quelqu'un pourrait me conseiller s'il vous plait?
Excusez moi à l'avance du dérangement .
Avatar de Qwazerty Qwazerty - Expert éminent http://www.developpez.com
le 20/10/2014 à 19:39
Salut

Merci pour la précision Marc, je n'ai jamais rencontré ce problème.

bonne soirée
++
Qwaz
Avatar de Otman.pro Otman.pro - Nouveau Candidat au Club http://www.developpez.com
le 13/05/2016 à 22:55
Bonsoir à Nouveau,

Je viens de publier ma question sur cette discussion alors que je découvre maintenant qu'elle est supprimée sans aucune notification
C'est comme même anormal, ou on a pas le droit de poser des questions ????

Celui qu'il a fait sans me justifier pourquoi est non respectueux, c'est degelace

J'ai plus envi mnt de continuer sur ce sit

VOila

A l'infini, personne en monopolise le savoir
Avatar de Qwazerty Qwazerty - Expert éminent http://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 est é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 est 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 passé ton message.

Bonne soirée
++
Qwaz
Avatar de Otman.pro Otman.pro - Nouveau Candidat au Club http://www.developpez.com
le 13/05/2016 à 23:18
Qwazerty, j'ai posé des questions et pas un cahier des charge, et tant pis pour ton aide, je trouverai la solution ailleurs
Avatar de Qwazerty Qwazerty - Expert éminent http://www.developpez.com
le 14/05/2016 à 11:15
Salut

Fait comme bon te semble. Je n'ai jamais refusé de donner de l'aide et beaucoup de gens sont de bonne volonté sur le forum pour aider.

Si faire un nouveau fil de discussion dans la section qui va bien, en exposant les démarches et le code que tu as déjà produit, pour enfin poser des questions sur les points de blocage te parait non nécessaire, ben pour moi ça me parait l'être. Encore une fois, je dis ça sans animosité ni colère.

Bonne journée
++
Qwaz
Avatar de patricktoulon patricktoulon - Expert éminent sénior http://www.developpez.com
le 16/05/2016 à 19:03
mais que fait la bolice !!!!!

bonjour a tous
il faudrait rappeler que ce post est un article sur la manipulation internet qui a été rédigé par Qwazerty pouvant donner une approche basique sur la manipulation de l'object IE
seules les questions relatives a cet article ou d'éventuelles manipulations non présentes sur cet article doivent y figurer
malheureusement ce n'est pas le cas!!!!!
peut être devrait on demander a la modération de mètre en plus gros caractères le texte de la charte si tant est qu'on la lise bien sur

donc vous avec un forum excel vba poster vos demandes sur celui ci

merci pour votre compréhension
Avatar de ssskyyy ssskyyy - Nouveau Candidat au Club http://www.developpez.com
le 29/06/2016 à 8:32
Bonjour à tous,

Ce tuto est vraiment bien fait et m'a beaucoup aidé dans ma mission de contrôle d'IE avec VBA.

Par contre, il manque un point qui est, à mon sens, important : la gestion des onglets.
En effet, parfois il y a de nouveaux onglets qui s'ouvrent mais même après des recherches, impossible de savoir comment charger l'HTML du nouvel onglet.

Le cas que j'ai en tête est l'ouverture d'un nouvel onglet en fond, utilisation de Sendkeys pour se placer sur le nouvel onglet mais ensuite malgré un IEDoc = Nothing et un nouveau IEDoc = IE.Document, l'HTML contenu est toujours celui du premier onglet (j'utilise un WaitIE IE et un autre Wait avec attente de quelques secondes pour être sûr de charger la page entièrement).
Je ne peux donc manipuler le 2ème onglet.

Auriez-vous des pistes que je n'ai su trouver ?

Je vous remercie d'avance et je reste dispo pour des info complémentaires.

EDIT : pour précision, sur le forum http://www.developpez.net/forums/d53...rnet-explorer/ j'ai réussi à afficher le nom et l'URL de l'onglet actif mais pas à manipuler l'onglet.
Avatar de patricktoulon patricktoulon - Expert éminent sénior http://www.developpez.com
le 29/06/2016 à 11:15
Bonjour ssskyyy
tu aurais du poster ta question sur le forum et mettre le lien vers cet article si tu veux

voila comment
Code : Sélectionner tout
1
2
3
4
5
6
7
8
Sub test()
Dim IE As Object, URL As String
URL = "http......."
Set IE = grabb_documenthtml(URL)
With IE.document
'blablablabla
End With
End Sub
Code : Sélectionner tout
1
2
3
4
5
6
 
Function grabb_documenthtml(URL) As Object
For Each obj In objShell.Windows
    If obj.LocationURL = URL Then Set grappe_documenthtml = obj
    Next
End Function
edit j'ai oublié de créer l'object
Code : Sélectionner tout
Set objShell = CreateObject("shell.application")
avant la boucle
Offres d'emploi IT
Developpeur fullstack au sein des financements structurés H/F
Société Générale - Ile de France - Paris (75000)
Architecte systèmes d'informations H/F
SAFRAN - Ile de France - Magny-les-Hameaux (78114)
Chef de projet junior - infrastructure visio et multimédia-(H/F)
Société Générale - Ile de France - Val-de-Marne

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Visual Basic 6