boucler sur tableaux pages web via vba

agadiroufla

XLDnaute Junior
Bonsoir tout le monde,
La question est dans le titre, je n'arrive pas à boucler sur tous les tableaux contenus dans une page web pour choisir celui qui contient un texte donné en colonne 1, ligne 1.
J'arrive bien à récupérer les données que je veux pour certains codes ISIN, mais dès que le nombre de tableaux change l'information récupérée n'est plus correct.
Merci pour votre contribution
Nb: le site web en question n'est pas accessible au grand public :
Voici le code :
Code:
Sub récup_cours_ok()
Application.ScreenUpdating = True
 Dim IE As New InternetExplorer
 Dim IEDoc As HTMLDocument
 Dim InputftidZoneTexte As HTMLInputElement
 Dim htmlProfil As HTMLGenericElement
 Dim Element As IHTMLElementCollection
 Dim Cotation As HTMLSpanElement
 Dim htmlSelectElem As HTMLSelectElement
 Dim htmlGeneric As HTMLGenericElement
 Dim cours As HTMLGenericElement
 
On Error Resume Next
Application.DisplayAlerts = False
'Chargement d'une page Web
IE.navigate "monsite"
 'On attend le chargement complet de la page
  Do
      DoEvents
  Loop Until IE.readyState = READYSTATE_COMPLETE And Not IE.Busy
  
 'Affichage de la fenêtre IE
 IE.Visible = True

Sheets("Feuil1").Select
derligne = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
 z = 1
 For z = 2 To derligne
    'On pointe le membre Document
    Set IEDoc = IE.document
    Do Until IEDoc.readyState = "complete"
      DoEvents
    Loop
    
    Set IEDoc = IE.document

   'On va sur l'objet qui contient la liste des indices
   Set htmlSelectElem = IEDoc.all("CTYPE")

   'On sélectionne l'indice "ter" via sa valeur unique
   htmlSelectElem.Value = "ISIN"
        
     'On pointe notre Zone de texte
     Set InputftidZoneTexte = IEDoc.all("CCODE")
 
    'On définit le texte que l'on souhaite placer à l'intérieur
    
     InputftidZoneTexte.Value = Range("A" & z).Value
  Set IEDoc = IE.document

Set htmlSelectElem = IEDoc.all("findbutton")
Set ObjectIE = IEDoc.getElementById("IMAGE")
ObjectIE.Click
        
   Do Until IE.readyState = READYSTATE_COMPLETE
      DoEvents
    Loop
    Set IEDoc = IE.document
    Do Until IEDoc.readyState = "complete"
      DoEvents
    Loop
        
        
Dim maTable As IHTMLTable
Dim Htable As IHTMLElementCollection

Set IEDoc = IE.document
'objet type table
Set Htable = IEDoc.getElementsByTagName("table")
'6eme tableau dans la page Web
Set maTable = Htable(10)

'Range("B" & z).Value = maTable.Rows(0).Cells(1).innerText
Range("B" & z).Value = maTable.Rows(1).Cells(3).innerText
Range("C" & z).Value = maTable.Rows(1).Cells(5).innerText
Range("D" & z).Value = maTable.Rows(1).Cells(6).innerText

   'On pointe le membre Document
    Set IEDoc = IE.document
    Do Until IEDoc.readyState = "complete"
      DoEvents
    Loop
   Do Until IE.readyState = READYSTATE_COMPLETE
      DoEvents
    Loop
    Set IEDoc = IE.document
    Do Until IEDoc.readyState = "complete"
      DoEvents
    Loop
       'On pointe le membre Document
    Set IEDoc = IE.document
    Do Until IEDoc.readyState = "complete"
      DoEvents
    Loop
 
Next

IE.Quit
  'On libère les variables
 Set IE = Nothing
 Set IEDoc = Nothing
 Application.ScreenUpdating = True
 End Sub
 

Discussions similaires

Réponses
8
Affichages
707

Statistiques des forums

Discussions
312 885
Messages
2 093 259
Membres
105 660
dernier inscrit
moi46