Les rubriques (actu, forums, tutos) de Développez
Tags
Réseaux sociaux
29   0


 Discussion forum

Manipulation d'Internet Explorer via VB

Le , par Qwazerty, Expert Confirmé Sénior
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 patricktoulon patricktoulon - Expert Confirmé Sénior http://www.developpez.com
le 14/03/2015 à 19:23
Bonjour
une approche dont je me sert a adapter a ton cas
les ligne rouge sont a adapter
une méthode parmi d'autre
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Sub test_recupfichierexcel()
   
    Dim IE As Object
         Set IE = CreateObject("internetexplorer.application")  'instancie l'Object
    URL = "https://www.bla bla bla"
    IE.navigate URL
    IE.Visible = True
    Do: DoEvents: Loop Until IE.readyState = 4 And IE.busy 
  
 ' peut être qu'ici il va te falloir manipuler un bouton pour déclencher la fenêtre de téléchargement voir le tuto de qwazerty sur ce sujet    
    
Application.Wait (Now + TimeValue("0:00:05"))
    SendKeys "{Tab}"
    SendKeys "{Tab}"
    SendKeys "{Enter}"
   
   waitfichier "chemin complet du fichier" '(en général c'est le chemin des téléchargement sur W7)
   
    IE.Quit
  
     Application.DisplayAlerts = False
    Application.ScreenUpdating = False
  
set wbk2 = Workbooks.Open("chemin complet du fichier")    '
    
    
End Sub
Sub waitfichier(fichier)
    Do: DoEvents: Loop Until Dir(fichier, vbHidden) <> ""
End Sub
Avatar de michel3131 michel3131 - Invité régulier http://www.developpez.com
le 14/03/2015 à 22:15
Génial

merci énormément à tous les deux Patrick et Qwaz !
Avatar de Sebphyto Sebphyto - Membre du Club http://www.developpez.com
le 22/04/2015 à 9:20
Bonjour le Forum et neouu,

Aurais-tu une première ébauche de code?

C plus simple pour nous

Seb
Avatar de patricktoulon patricktoulon - Expert Confirmé Sénior http://www.developpez.com
le 22/04/2015 à 9:37
bonjour neou

tout dabors tu aurais du ouvrir un nouveau post
en suite je suis allé voir ta page

en effet on recupere rien parceque il y a rien a recupérer les carrés avec "N en rouge" ou "X dans un fond vert"

sont des images générées par la classe de style

classe
score1
scrore score 1
scroreN
etc.......

en fait pour retranscrire ca dans tes cellules tu va devoir astucer
en gros le shema qu'il te faut
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
set matable=document.getelementsbytagname("tr")
 for e= 0 to matable.children.length
for i = 0 to matable(e).children.length
if matable(e).chidren(i).classename='score1 then 
cells(e+1,i+1)='par exemple X envert 
 
'etc..... pour toute les classe de style 
end if 
next
next
mais bon avec IE c'est coton tu va t'amuser

essaie plutôt une requête
je l'ai fait hier soir c'est plus approprié pour ce genre d'exercice

transfert on post
Avatar de patricktoulon patricktoulon - Expert Confirmé Sénior http://www.developpez.com
le 22/04/2015 à 16:52
neou va voir ICI
Avatar de haribo91 haribo91 - Candidat au titre de Membre du Club http://www.developpez.com
le 29/04/2015 à 11:31
Bonjour,

D'abord un grand bravo pour cet excellent tuto .

Pour ma part j'ai une question sur les listes déroulantes. Tu a montré comment sélectionner un item dedans ou comment récupérer tous les choix de cette liste, mais sur certains site lorsque l'on sélectionne un item et bien la page change en fonction de celui-ci.

Or avec la méthode de sélection que tu as décrite, rien ne se passe. Enfin le bon item est sélectionné dans la liste, mais la page ne change pas pour autant, et il n'y a pas de bouton "OK" pour valider mon choix sur la page..

Peux-tu m'aider sur ce point ?

Merci.

Haribo.
Avatar de beetS beetS - Invité de passage http://www.developpez.com
le 30/04/2015 à 9:38
Bonjour,

Je suis nouveau sur ce forum et tiens a remercier quazerty pour cet excellent tuto qui m'a permis de bien avancer .

Je suis par contre bloqué avec l’exécution d'un script en Java sur ma page , suis-je sur le bon forum pour poster mon problème ?
Avatar de Marc-L Marc-L - Expert Confirmé Sénior http://www.developpez.com
le 30/04/2015 à 11:26


Bonjour,

mieux vaut ouvrir une discussion dans le forum dédié Macros et VBA Excel

_____________________________________________________________________________________________________
Je suis Charlie - Je suis Bardo
Avatar de beetS beetS - Invité de passage http://www.developpez.com
le 30/04/2015 à 11:55
Merci pour ta réponse .

J'ai exposé mon problème ICI
Avatar de PhilippeF75 PhilippeF75 - Invité de passage http://www.developpez.com
le 12/05/2015 à 5:26
Tout d'abord bonjour à tous et merci pour ce tuto très instructif qui m'a décidé à ré-écrire des macros en VBA pour automatiser certains accès à une BDD sur un site professionnel sécurisé.
Je précise que j'avais déjà écrit de telles macros quelques années auparavant et que tout marchait bien. Mais depuis, mon PC et ses logiciels ont changé et là rien ne va plus...
Je précise d'abord que je suis sous W7 Édition familiale Premium SP1 64 bits, avec Office pro + 2010 (v.14.0.7147.5001 32 bits) et donc VBA (v.7.0.1628), avec IE11 (v.11.0.9600.17691 màj 11.0.17 32 bits semble-t-il) ; je précise également que Java 32 bits et 64 bits sont à jour également.
Évidemment, les références HTML Object Library et Internet Controls sont activées et pas qu'elles.

Mon problème dès le code de base du tuto : j'ai l'erreur "objet non défini" sur la ligne Set IEDoc = IE.document alors qu'il est préalablement bien défini par "Dim IEDoc As HTMLDocument" donc, avant le WaitDoc...

Merci d'avance et à la prochaine car mes problèmes vont encore au-delà, mais pas tout en même temps !
Avatar de Sebphyto Sebphyto - Membre du Club http://www.developpez.com
le 12/05/2015 à 8:42
Bonjour PhilippeF75,

Si tu as besoin ouvre un nouveau post et nous nous ferons un plaisir de t'aider...

A+


Responsable bénévole de la rubrique Visual Basic 6 : Philippe Baquer -