Bonjour à tous,
Je débute dans la manipulation d'explorer via VBA et voici mon souci : je dois etraire des données sur ce site http://www.swapsinfo.org/charts/swap...-risk-activity
Dans la barre de recherche, par exemple, je veux selectionner les nominaux d'ARCELORMITTAL, il faut donc le taper, puis appuyer sur entréE de sorte que les valeurs que propose le site soit selectionnables, icI on aura ARCELORMITTAL et ARCELORMITTAL FINANCE.
Mais depuis VBA impossible de faire apparaitre la liste de valeur disponibles, pourtant je simule les meme commande que sur le site directement : on tape la valeur ARCELORMITTAL, on clique sur la même barre de recherche, puis sur entrée et les deux valeurs apparaissent.
Voici mon code :
Si quelqu'un peut m'aider ce serait super, car même en utiliant les sendkeys il ne se passe rien. Je n'ai pas mis le code html qui est disponible sur le site.
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
46
47
48
49
50
51
52
53
54
55
56 Sub connexion() Dim IE As InternetExplorer Dim IEdoc As Object Dim DOCelement As Object Dim InputISDAZoneTexte As HTMLInputElement Dim InputISDA1Bouton As HTMLInputElement Dim InputISDA2Bouton As HTMLInputElement Set IE = New InternetExplorer IE.navigate ("http://www.swapsinfo.org/charts/swaps/market-risk-activity") IE.Visible = True ' attente de fin de chargement Do Until IE.readyState = 4 DoEvents Loop Set IEdoc = IE.Document Set InputISDAZoneTexte = IEdoc.all("suggest") 'On définit le texte que l'on souhaite placer à l'intérieur InputISDAZoneTexte.Value = "ARCELORMITTAL" InputISDAZoneTexte.Focus InputISDAZoneTexte.Click ' c'est ici que ça cloche Application.SendKeys "{ENTER}", True Application.Wait Now + TimeValue("0:0:2") Application.SendKeys "{ENTER}", True Do Until IE.readyState = 4 DoEvents Loop Set InputISDA1Bouton = IEdoc.all("submit") InputISDA1Bouton.Click Set InputISDA2Bouton = IEdoc.all("export-data") InputISDA2Bouton.Click IEdoc.Focus Application.Wait Now + TimeValue("0:0:2") Application.SendKeys "%{S}" Set IE = Nothing Set IEdoc = Nothing End Sub
Merci d'avance.
Pour plus de précisions, il y a deux solutions possibles :
- passer par les sendkeys pour répliquer les actions souris/clavier depuis vba
- passer par le code javascript et récuperer les clés associées au string, par exemple pour arcelormittal c'est 82. Quand on clique sur "update data" on executela requete suivante : http://www.swapsinfo.org/charts/swap...it=Update+Data où l'on voit bien le "82" mais à ce moment j'aurais besoin d'une transco de tous les string en clés et je ne sais pas comment faire non plus.
Partager