Merci Qwazerty pour cet excellent tuto !!!
Cela m'a permis de faire déjà tellement de chose que je n'arrivais pas à faire sans...
Ce tuto est vraiment excellent !!!
Merci Qwazerty pour cet excellent tuto !!!
Cela m'a permis de faire déjà tellement de chose que je n'arrivais pas à faire sans...
Ce tuto est vraiment excellent !!!
Un million de mercis pour ce tutoriel, un bonheur dans la forme (juste le bon rythme, drôle et efficace), il m'a ouvert des horizons enthousiasmants (je pratique vba depuis des années mais perds des heures depuis toutes ces années sur des recherches web que je ne savais pas automatiser).
J'ai mis quelques-unes des réalisations que m'ont permis votre tuto en ligne sur mon site perso : lucwalraf.com
Et je me suis permis de vous citer dans les remerciements :https://lucwalraf.com/a-propos/
Si cela vous gêne n'hésitez pas à me le dire : je retirerai la mention bien sur.
Encore merci à vous,
Luc W.
J'ajoute une question pour faire avancer le schmillblick : un cas où je cherche à lancer une recherche sur un site (équivalent au lancement d'une recherche sur Google explicité dans le tuto) mais ne trouve ni form ni bouton submit pour lancer la recherche.
J'ai l'impression que la solution est donc de simuler une validation par la touche ENTREE au clavier mais n'y arrive pas en utiliser les commandes Sendkeys.
Un exemple ci-dessous. Si quelqu'un a une idée, merci d'avance !
Luc W.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Public Sub RechScipio() ' Déclare les variables du module Dim oNav2 As SHDocVw.InternetExplorer Dim oDoc2 As MSHTML.HTMLDocument Dim ChampInput As HTMLInputElement URLcible = "https://www.myfrenchstartup.com/fr/recherche-avancee" Set oNav = New SHDocVw.InternetExplorer oNav.navigate URLcible oNav.Visible = True ' Attend le chargement de la page Do Until oNav.readyState = READYSTATE_COMPLETE DoEvents Loop ' Renseigne le champ recherche Set oDoc = oNav.document Set ChampInput = oDoc.all("startup_name") ChampInput.Value = "Scipio Bioscience" ''Tentatives infructueuses pour lancer la recherche ''ChampInput.SendKeys("~") ''ChampInput.SendKeys("~").send ''ChampInput.Value = "Alantaya" & ChampInput.SendKeys("~").send End Sub
re
bonjour
pour une question sur un probleme perso priere d'ouvrir un post dans le forum adequat ce post est une contribution
en attendant pour ton soucis c'est normal pour profiter du moteur de recherche avancer il faut etre connecté
donc il te faut remplir les login et password avant que la page t'affiche le input a remplir
cependant tu a le moteur de recherche classique sans connection
ET OUVRE UN POST !!!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Sub recherche() URL = "https://www.myfrenchstartup.com/fr/" Set ie = CreateObject("internetexplorer.application") With ie .Visible = True .navigate URL Do: DoEvents: Loop While .readystate <> 4 With .document.getelementbyid("search_name"): .Value = "ALANTAYA": .Focus: End With With CreateObject("wscript.shell"): .SendKeys "{ENTER}": End With End With End Sub
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Bonjour,
Mes plus plates excuses pour mon erreur de comportement : je suis nouveau sur le forum et comme c'est un sujet très proche de ceux traités dans le tuto j'avais pensé que ça avait un rapport. Autant pour moi.
Et surtout merci pour la réponse, je vais essayer le code. Ce qui est sûr c'est que ce n'est pas un problème de connection au site : j'ai un compte, je m'y logge et même quand j'ai une session ouverte mes essais ne marchent pas. D'ailleurs, c'est assez logique : le fait d'avoir un compte ou pas ne joue pas sur le lancement de la recherche (qui est mon problème) mais sur le niveau de détails que renvoie la recherche.
Une question qui me turlupine au passage : pourquoi lancer la recherche sur "ALANTAYA" ?
Bonne journée,
Luc
parce que c'est l'exemple que tu a donné
Code : Sélectionner tout - Visualiser dans une fenêtre à part ''ChampInput.Value = "Alantaya" & ChampInput.SendKeys("~").send
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
et n'oublie pas de voter
Youpi, ça marche !
Je ne comprends rien à cette ligne mais c'est elle qui ouvre la porte magique :
Encore merci pour la réponse et pour l'aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part With CreateObject("wscript.shell"): .SendKeys "{ENTER}": End With
Bonne soirée,
Luc
PS : vu pour alantaya, j'avais oublié que je l'avais laissé dans les exemples non-aboutis.
Bonjour,
Merci à Qwazerty pour ce tuto, ainsi qu'aux autres pour la richesse du forum.
J'ai un petit souci sur la récupération des id HTML d'une page WEB.
J'arrive à rentrer sur la page concernée (alteva Mission GMAO) avec mon identifiant et mot de passe à l'aide de la requete IEDoc.all avec le code HTML du style <input id=A22.
Cependant après j'ai une balise de type <button type avec getElementById('z_zrl_2_A3_IMG')
Code html : Sélectionner tout - Visualiser dans une fenêtre à part <button type="button" onclick="_PAGE_.A2.value=2;{_JSL(_PAGE_,'A4','_self','','');} " onmouseout="(document.getElementById('z_zrl_2_A3_IMG')||this).style.backgroundImage='url(/EMISSION_WEB/Tuile_ConsulDI.jpg)';
Dois je utiliser simplement la fonction IE.document.getElementById("") ?
Aussi je ne trouve pas le menu attributs comme dans le tuto, est ce que IE11 ne donne plus accès à cette information ?
Merci d'avance
Salut
Je n'ai pas accès à mon pc en ce moment.
Le bouton ne semble pas avoir d'id ni de nom, il faut donc remonter dans l'arborescence de la page pour trouver un élément ayant un nom ou un id auquel faire référence pour arriver ensuite jusqu'au bouton via Child/ children par exemple.
Le Getelementbyid que tu vois dans le code du bouton correspond à la recherche de l'image permettant de changer l'aspect du bouton sur survol de la souris.
Pour le reste je ne peux pas apporter de réponse.
Ce film de discussion étant fait pour traiter des problèmes liés au tutoriel et non à sa mise en oeuvre, peux tu ouvrir un autre fil de discussion sur le forum afin de ne pas surcharger le présent fil.
Merci
++
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et Seul Tutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
Juste une remarque : le lien de téléchargement du tutoriel au format ePub lance en fait le téléchargement d'un fichier ZIP contenant la version HTML.
Le problème dans ton cas ne viens pas de IE.readyState ou doc.readyState mais de IE.Busy
Pendant un temps je l'ai intégré dans WaitIE ce qui à réduit sans faire totalement disparaître les bugs aléatoires.
Mais cette après midi j'ai enfin trouvé la solution, c'est pas super propre, mais ça fonctionne !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub WaitIE(IE As InternetExplorer) Dim IEDoc As HTMLDocument Do While Not IE.readyState = READYSTATE_COMPLETE DoEvents Loop Set IEDoc = IE.document Do While Not IEDoc.readyState = "complete" DoEvents Loop Do While IE.Busy = True Do While IE.Busy = True DoEvents Loop Sleep 200 ' cette temporisation peut être augmentée si les bugs persistent DoEvents Loop Debug.Print IE.readyState Debug.Print IEDoc.readyState Debug.Print IE.Busy End Sub
Bonjour,
En suivant les recommandations du tutoriel, très clair au demeurant, je me retrouve confronté à un problème d'incompatibilité de type pour la variable InputGoogleBouton... D'après l'inspection du code html de la page de google, le nom de la variable est actuellement "btnK". S'agit il d'un "vrai" bug ou une subtilité m'aurait-elle échappée?
Merci,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 Sub RechercheVBAExcel() 'Déclaration des variables Dim IE As New InternetExplorer Dim IEDoc As HTMLDocument Dim InputGoogleZoneTexte As HTMLInputElement Dim InputGoogleBouton As HTMLInputElement 'Chargement d'une page Web Google IE.Navigate "www.google.fr" '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 = "VBA Excel" 'On pointe notre bouton Set InputGoogleBouton = IEDoc.all("btnK") 'On simule un clic InputGoogleBouton.Click 'On attend la fin de la recherche WaitIE IE 'On libère les variables Set IE = Nothing Set IEDoc = Nothing End Sub 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
Cordialement
Bonjour,
Tout d'abord, un grand merci pour cet excellent tuto.
Toutefois, mon espion sur l'objet IE ne renvoie rien pour Document.
Comment cela se fait-il ?
Merci d'avance pour votre aide.
Bonjour
Merci de prendre le temps de lire les autres messages, la question a déjà été posée plusieurs fois.
Il faut mettre le contenu de IE.document dans une variable de type htmlDocument et ensuite espionner cette variable.
Je vous souhaite une bonne journée
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et Seul Tutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
Bonjour,
Et une nouvelle fois merci et encore toutes mes excuses; j'aurais dû effectivement lire les posts plus haut, notamment le #77.
Pourriez-vous, s'il vous plaît, expliciter davantagele paragraphe sur les Iframe, page 10: "Le
composant iFrame est utilisé pour afficher dans le corps d'une page une autre page Web indépendante. Cette page
indépendante a beau être affichée, son contenu n'est pas accessible dans l'arborescence VBA, il faudra charger cette
page dans une fenêtre de navigation pour interagir avec elle.
N'y a-t-il en effet aucun moyen d'accéder, via VBA, à ces objets ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager