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 :

<TR align=center vAlign=top>
<TD bgColor=#111111><IMG title="Armée: Varangian Guard (Miljan_grehovic), aux portes de la ville le 2015-06-27 22:12:08" src="images/oriflamme-2.gif"></IMG><BR><IMG title="Armée: Висока кула 《S.A.T》 (Sarlo), aux portes de la ville le 2015-06-27 22:12:08" src="images/oriflamme-7.gif"></IMG><BR><IMG title="Armée: Вукови Рашке (Vojvoda), aux portes de la ville le 2015-06-27 22:12:08" src="images/oriflamme-4.gif"></IMG><BR><IMG title="Statu quo: Краљева гарда le 2015-06-27 22:12:08" src="images/warning.png"></IMG><BR><IMG title="Armée: T-Sila (Sekac), dans l'enceinte de la ville le 2015-06-27 22:12:08" src="images/oriflamme-3.gif"></IMG><BR><IMG title="Armée: Краљева гарда (Kojadin), dans l'enceinte de la ville le 2015-06-27 22:12:08" src="images/oriflamme-1.gif"></IMG><BR></TD>
<TD bgColor=#111111>Смедерево<BR>(Capitale)</TD>
<TD bgColor=#111111><FONT color=blue>Pêche</FONT></TD>
<TD bgColor=#111111>400</TD>
<TD bgColor=#111111><IMG onclick="sendMail('','Krkan');" alt="écrire à Krkan" src="http://www.dufric.com/RR/images/mail.png"></TD>
<TD bgColor=#111111><A href='javascript:popupPerso("Krkan")'>Krkan</A></TD>
<TD bgColor=#111111><A href='javascript:popupPerso("Kojadin")'>Kojadin</A></TD>
<TD bgColor=#111111><A href='javascript:popupPerso("Shushumiga")'>Shushumiga</A></TD></TR>
<TR align=center vAlign=top>
<TD bgColor=#222222>Новгородская республика<FONT size=2><BR><BR>Population : 122<BR><BR>Langue : Russe</FONT></TD>
<TD bgColor=#222222>Новгородская республика<FONT size=2><BR><BR>Population : 122<BR>Prestige : <FONT color=yellow>* </FONT><BR><BR><A href="javascript:popupConseil(61,'&amp;#1053;&amp;#1086;&amp;#1074;&amp;#1075;&amp;#1086;&amp;#1088;&amp;#1086;&amp;#1076;&amp;#1089;&amp;#1082;&amp;#1072;&amp;#1103; &amp;#1088;&amp;#1077;&amp;#1089;&amp;#1087;&amp;#1091;&amp;#1073;&amp;#1083;&amp;#1080;&amp;#1082;&amp;#1072;')">Les Conseillers</A><BR><A href="javascript:popupTaxes(61,'&amp;#1053;&amp;#1086;&amp;#1074;&amp;#1075;&amp;#1086;&amp;#1088;&amp;#1086;&amp;#1076;&amp;#1089;&amp;#1082;&amp;#1072;&amp;#1103; &amp;#1088;&amp;#1077;&amp;#1089;&amp;#1087;&amp;#1091;&amp;#1073;&amp;#1083;&amp;#1080;&amp;#1082;&amp;#1072;')">Les Taxes</A></FONT></TD>
<TD bgColor=#222222><IMG alt="Новгородская республика" src="http://www.lesroyaumes.com/images/commun/cartes/marqueurComte61g.gif" img <></TD>
<TD bgColor=#222222><IMG title="Statu quo: Mairie le 2015-05-06 18:09:17" src="images/mairie.png"></IMG><BR></TD>
<TD bgColor=#222222>Новгород<BR>(Capitale)</TD>
<TD bgColor=#222222><FONT color=green>Forêt</FONT></TD>
<TD bgColor=#222222>122</TD>
<TD bgColor=#222222><IMG onclick="sendMail('','Ilumiell');" alt="écrire à Ilumiell" src="http://www.dufric.com/RR/images/mail.png"></TD>
<TD bgColor=#222222><A href='javascript:popupPerso("Ilumiell")'>Ilumiell</A></TD>
<TD bgColor=#222222><A href='javascript:popupPerso("Peresvet")'>Peresvet</A></TD>
<TD bgColor=#222222><A href='javascript:popupPerso("")'></A></TD></TR>
(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