Récupérer des données dans un tag SPAN

Banosjo

XLDnaute Junior
Bonjour à tous,

Sur ma page HTML, j'essaie de récupérer des informations qui se trouvent dans un tag SPAN :
[highlight]
' <span class="bigLabel">8129978</span>
' <span class="field">227-09-01&nbsp;&nbsp;--&nbsp;&nbsp;PECHES ET OCEANS</span>
[/code]

J'essaie avec le code suivant (comme je le ferai avec des tags "Input") mais sans succès :

VB:
Sub No_Demande_Client()

Dim Resultat As String
Dim appIE As Object             'InternetExplorer
Dim HTMLDoc As Object           'HTMLDocument
Dim oHTML_Element As Object     'IHTMLElement
Dim winShell As Object          'New ShellWindows

Set appIE = CreateObject("InternetExplorer.Application")
Set winShell = CreateObject("Shell.Application").Windows
    
' Recherche la bonne page
'
  For Each appIE In winShell
    If InStr(appIE.LocationURL, "TaskType") <> 0 Then
      appIE.Silent = True
      appIE.Visible = True
      Set HTMLDoc = appIE.document
      Resultat = HTMLDoc.documentElement.innerHTML
      Exit For
    End If
  Next appIE
    
For Each oHTML_Element In HTMLDoc.getElementsByTagName("span")

If oHTML_Element.Attribute("class") = "bigLabel" Then
'If oHTML_Element.Class = "bigLabel" Then
   ActiveSheet.Cells(2, 5).Value = oHTML_Element.Value
   End If
   
' mais il me faudrait seulement les 9 premiers caractères ("227-09-01")
If oHTML_Element.Attribute("class") = "field" Then
'If oHTML_Element.Class = "field" Then
   ActiveSheet.Cells(2, 15).Value = oHTML_Element.Value
   End If
Next oHTML_Element

End Sub

J'ai beau chercher ce qui cloche, je ne trouve malheureusement rien :(

Sauriez-vous m'éclairer ? Merci de votre aide !!
 

Staple1600

XLDnaute Barbatruc
Re : Récupérer des données dans un tag SPAN

Bonsoir

Essaies de t'inspirer de ceci
Code:
Sub a()
Dim St_r$
St_r = "<span class=""field"">227-09-01&nbsp;&nbsp;--&nbsp;&nbsp;PECHES ET OCEANS</span>"
MsgBox Mid(Split(St_r, ">")(1), 1, 9)
End Sub
 

Banosjo

XLDnaute Junior
Re : Récupérer des données dans un tag SPAN

RE,

J'ai presque réussi ! Ça marche très bien pour la valeur "bigLabel" mais le seul problème qui reste est que la valeur "field" que je recherche est la 3e dans le code HTML et je ne réussi pas à m'y rendre (c'est à dire à sauter les deux premiers) :(

Auriez-vous une idée ?

VB:
Sub No_Demande_Client()

Dim Resultat As String
Dim appIE As Object             'InternetExplorer
Dim HTMLDoc As Object           'HTMLDocument
Dim oHTML_Element As Object     'IHTMLElement
Dim winShell As Object          'New ShellWindows

Set appIE = CreateObject("InternetExplorer.Application")
Set winShell = CreateObject("Shell.Application").Windows
    
' Recherche la bonne page
'
  For Each appIE In winShell
    If InStr(appIE.LocationURL, "TaskSummary") <> 0 Then
      appIE.Silent = True
      appIE.Visible = True
      Set HTMLDoc = appIE.document
      Resultat = HTMLDoc.documentElement.innerHTML
      Exit For
    End If
  Next appIE

' Pour le numéro de la demande
'
AA = Mid(Resultat, InStr(Resultat, "bigLabel") + 9)
AA = Left(AA, 7)
ActiveSheet.Cells(2, 5).Value = AA

' Pour le numéro du client
'
BB = Mid(Resultat, InStr(Resultat, "field") + 6)
BB = Left(BB, 9)
ActiveSheet.Cells(2, 15).Value = BB

End Sub

Merci encore de votre aide précieuse !!
 

Staple1600

XLDnaute Barbatruc
Re : Récupérer des données dans un tag SPAN

Bonjour

Banosjo
Si tu pouvais nous indiquer l'url de la page web en question
(Afin que l'on puisse voir le code source de la page web)

On pourrait faire des test "en live" de notre côté.
 

Banosjo

XLDnaute Junior
Re : Récupérer des données dans un tag SPAN

RE,

J'aimerais bien mais c'est un site intranet sécurisé :(

Voici un exemple d'un bout du code source de la page, si ça peut aider .. on y retrouve entre autres les 3 "field" et c'est le 3e qui m'intéresse :

HTML:
     <tr valign="top">
	        	<td colspan="2" align="left"><span class="bigLabel">8128887</span><span class="default">&nbsp;&nbsp;--&nbsp;&nbsp;</span><span class="field">Reçue par le Bureau&nbsp;:</span>&nbsp;<span class="field">2011-05-06 12:50</span><br/><span class="smallLabel12"></span></td>
				
				<td width="34%" align="left">
					 
						<input type="submit" name="businessActionSave" value="Sauvegarder" >
					
					
						
							<input type="submit" name="businessActionRemove" value="Supprimer la tâche" >
						
					
				</td>
			  </tr>
	          <tr valign="top">
	        	<td colspan="2" align="left"><span class="field">023-50-01&nbsp;&nbsp;--&nbsp;&nbsp;EC&nbsp;/&nbsp;SERV INT TRAD REV&nbsp;/&nbsp;SERV INT TRAD REV</span><br/><span class="label">Numéro de référence du client :&nbsp;</span><span class="field">11050146</span><br/></td>
				<td width="34%" align="left"></td>
			  </tr>

Je suis en train de voir si je ne pourrais pas utiliser soit un compteur de "field" ou une fonction .Find qui trouverait la 3e occurence .. une autre idée que j'ai serait de trouver dans le code une expression correspondant à "CCC-CC-CC" (avec le "C" étant pour le format "Chiffre") mais bon, il reste à concrétiser l'idée :)

Merci de votre aide !
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Récupérer des données dans un tag SPAN

Bonjour banosjo, le fil, le forum


Personnellement je suivrai cette piste
VB:
Sub testIE()
Dim ie As Object, ieDoc As Object, URL$, Data$, i&
URL = "http://www.excel-downloads.com/forum/163052-recuperer-des-donnees-dans-un-tag-span.html"
    With CreateObject("InternetExplorer.Application")
        .Navigate URL
        Do Until (.ReadyState = 4 And Not .Busy): DoEvents: Loop
        Set ieDoc = .Document: Data = ieDoc.body.innertext
        Dim t As Variant: t = Split(Data, vbCrLf)
        For i = 0 To UBound(t)
        Cells(i + 1, 1) = t(i)
        Next
        .Quit
    End With
Set ie = Nothing
Set ieDoc = Nothing
End Sub 'adapté d'un code de sumuwin

Dans ce cas le corps de la page est copié dans une feuille Excel

Ensuite tu as tout le loisir chercher par VBA.

PS: j'ai l'url de ton fil pour tester la macro.

EDITION: pour avoir le code source, modifier ainsi:
Set ieDoc = .Document: Data = ieDoc.body.innerHtml
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 474
Messages
2 088 719
Membres
103 934
dernier inscrit
AMRISS