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


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


 Poster une réponse

Avatar de Qwazerty Qwazerty - Expert Confirmé Sénior http://www.developpez.com
le 14/03/2015 à 17:48
Salut

Fais quelques recherches sur le forum, plusieurs personnes ont déjà demandé cela, il y a des solution avec des Sendkey, des solution si le fichier à une adresse précise qui peut être appelée sans actionner le bouton.
Il me semble que Marc-L a mis une contribution en ligne pour pallier au problème à l'aide de sendkey je crois.

++
Qwaz
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 actif 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 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 actif 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+
Avatar de ThaHardy ThaHardy - Membre à l'essai http://www.developpez.com
le 04/06/2015 à 12:35
Bonjour a tous,

Tout d'abord merci pour ce tuto qui est trés bien fait, et bien pratique !
J'ai juste un petit probléme, en effet j'ai mis un espion sur IEdoc comme j'ai vu d'en un autre commentaire car l'espion sur IE ne m'affichait pas les Items, cependant au moment de comparer l'arboresence il manque des Items et je ne peux pas continuer mon travail du fait que l'Item qui m'interesse pour prendre du texte dans la page n'apparait pas. quelqu'un aurait-il une idée du comment et du pourquoi ?
J'ai essayé de voir en mettant l'attente de chargement de la page mais cependant cela ne fonctionne toujours pas.
Je vous joins mon code:
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Option Compare Database
Option Explicit
Sub WaitIE(IE As InternetExplorer)
   'On boucle tant que la page n'est pas totalement chargée
   Do Until IE.ReadyState = READYSTATE_COMPLETE
      DoEvents
   Loop
End Sub
Sub RechercheVBAExcel()
 
'Déclaration des variables
Dim IE As New InternetExplorer
Dim IEDoc As HTMLDocument
Dim InputGoogleZoneTexte As HTMLInputElement
Dim InputGoogleBouton As HTMLInputElement
Dim FormGoogleCherche As HTMLFormElement
 
   'Chargement d'une page Web Google
   IE.navigate "www.google.com/finance"
 
   'Affichage de la fenêtre IE
   IE.Visible = True
 
   'On attend le chargement complet de la page
   WaitIE IE
 
   'On pointe le membre Document
   Set IEDoc = IE.Document
 
   'On pointe notre Zone de texte
   Set InputGoogleZoneTexte = IEDoc.all("q")
 
   'On définit le texte que l'on souhaite placer à l'intérieur
   InputGoogleZoneTexte.Value = "VSAR"
 
   'On pointe notre bouton
   Set InputGoogleBouton = IEDoc.all("gbqfb")
 
   'On simule un clic
   InputGoogleBouton.Click
 
   'On attend le chargement complet de la page
   WaitIE IE
 
  'On libère les variables
   Set IE = Nothing
   Set IEDoc = Nothing
 
  End Sub
Merci d'avance

Cordialement

TH
Avatar de Marc-L Marc-L - Expert Confirmé Sénior http://www.developpez.com
le 04/06/2015 à 16:20


Bonjour,

voir post #115 …
Offres d'emploi IT
Data scientist h/f
CDI
AXA - Ile de France - La Défense
Ingénieur d'étude et développement java jee h/f
CDI
INFOTEL CONSEIL - Rhône Alpes - Lyon (69000)
Développeur web - Analyste programmeur (H/F)
CDI
DELTA INTERNATIONAL CORPORATION - Pays de la Loire - La Ferté Bernard (72400)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique Visual Basic 6 : Philippe Baquer -