Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Obtenir plusieurs informations via webpage avec une macro

wolfloner

XLDnaute Nouveau
Bonjour à vous,

Après avoir suivi plusieurs information, j'ai créer une macro extractrice d'informations Html d'un code source d'une page Web.
Malheureusement, les informations que je recherches ne sont pas complètes.
En quelques mots, ma macro sort de la page web les noms d'armées, leur commandant, si elles se trouve ou non dans la ville, l'heure et date de la mise à jour ainsi que le code html de leur oriflamme, le tout sous la forme suivante :

Code:
ВКС  (Miloss), dans l'enceinte de la ville le 2015-04-22 12:30:14" src="images/oriflamme-0.gif"><

Jusque là tout va bien.

Alors qu'est ce qui ne va pas me direz vous.... Et bien, je n'arrive pas à extraire le nom de la ville où elle se trouve exactement, ce qui est embêtant, car le but est de la géolocaliser pour une utilisation sur une carte.
Ce que je cherche donc, c'est que dans la cellule sheet2.range "B", je retrouve le nom de la ville où est situé l'armée.

Pour plus d'informations, le html se présente ainsi :

(nom des armées, nom des villages)

Vous noterez peut-être que certaines villes n'ont pas d'armée et que d'autres peuvent en posséder plusieurs.

Je me posais donc la question du comment compléter ma macro d'extraction avec une fonction de recherche de la ville en question (voir exemple de résultat voulu final : sheet3)

Je vous met mon wookbook en lien.

D'avance merci pour vos réponses.
 

Pièces jointes

  • essai2.xlsm
    75 KB · Affichages: 39
  • essai2.xlsm
    75 KB · Affichages: 51
  • essai2.xlsm
    75 KB · Affichages: 62

tototiti2008

XLDnaute Barbatruc
Re : Obtenir plusieurs informations via webpage avec une macro

Bonsoir,

un essai

Code:
Private Sub CommandButton1_Click()
Sheet1.WebBrowser1.Navigate (Sheet1.Range("k2"))


Do
DoEvents


Loop Until Sheet1.WebBrowser1.ReadyState = READYSTATE_COMPLETE


'UserForm1.TextBox1.Text = Sheet1.WebBrowser1.Document.Body.InnerHTML
''Sheet2.Range("A1").Value = UserForm1.TextBox1.Value
'''UserForm1.Show
the_html_code = Sheet1.WebBrowser1.Document.Body.InnerHTML

    'If InStr(the_html_code, "Armée:") > 0 Then MsgBox "ok"
    ''MsgBox InStr(the_html_code, "Armée:")
    
    the_output_row = 1
    
    Do
    
    DoEvents
    
     start_armee = InStr(the_html_code, "Armée")
     If start_armee > 0 Then
     the_output_row = the_output_row + 1
     
        the_url = Mid(the_html_code, start_armee + 6, Len(the_html_code))
        
        the_html_code = Mid(the_html_code, start_armee + 6, Len(the_html_code))
        
        the_url = Mid(the_url, 1, InStr(the_url, Chr(60)))
      
        start_town = InStr(Mid(the_html_code, 1, Len(the_html_code)), "<TD bgColor=#")
        
        the_town = Mid(the_html_code, start_town + 20, Len(the_html_code))
        
        the_town = Replace(Mid(the_town, 1, InStr(the_town, "</TD>") - 1), "<BR>", " ")
        
       Sheet2.Range("A" & the_output_row) = the_url
       Sheet2.Range("B" & the_output_row) = the_town
    End If
    
    Loop Until start_armee = 0
    
    MsgBox "complete"
    
End Sub
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…