Bonjour à toutes et tous,
Je souhaite récupérer dans une variable une partie du code source d’une page HTML.
En compilant plusieurs codes trouvés sur le forum, la connexion à la page souhaitée et son affichage se réalisent sans problème.
Deux questions :
1) Je souhaite ajouter un message qui avertit l’utilisateur si la page ne s’affiche pas ou la connexion à internet n’est pas active par exemple.
L’écriture suivante ne fonctionne pas :
2) J’ai des difficultés à récupérer la partie de caractères qui m’intéresse qui est le contenu de l’attribut « href », lui-même nœud associé de l’élément « a ». J’utilise l’objet HTML DOM. Je ne parviens pas à intégrer en VBA le code suivant (fonctionnel en Javascript) : var=document.getElementsByTagName(« a »)[0].href.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Set IE = CreateObject("InternetExplorer.Application") If IE.Busy = True Or IE.ReadyState <> READYSTATE_COMPLETE Then MsgBox "L'accès à la page internet demandée n'a pu être réalisé." & Chr(10) & "Veuillez vérifier l'état de la connexion à internet et recommencer l'opération.", vbOKOnly + vbExclamation, "ECHEC DE CONNEXION A INTERNET" Exit Sub End If
Code actuel qui présente des erreurs de type ‘Objet’ et déclaration de variable. J’ai activé les références Microsoft HTML Objects Library et Microsoft Internet Controls
Je joins également une partie du code de la page HTML avec les données que je souhaite récupérer dans une variable.
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
57
58
59
60
61
62
63
64
65
66
67 '--------------------------------------------------------------------------------------- ' Procedure : Extraction Coordonnées Lambert ' DateTime : 12/12/2008 23:09 ' Author : Basé sur le code de Philben - www.developpez.com ' Purpose : Extraction des coordonnées Lambert du PRAS suivant l'adresse '--------------------------------------------------------------------------------------- Dim IE As InternetExplorer Dim CodeSource As HTMLDocument Dim data As IHTMLElementCollection Dim sCoord As String Dim dX, dY As Double Dim repere As Integer Dim dRUE As String Dim IPOS As Byte IPOS = InStr(Me.Rue, "/") dRUE = Left(Me.Rue, IPOS - 1) 'DoCmd.Hourglass True 'Création de l'URL d'appel, renvoi d'un HTML contenant les informations Set IE = CreateObject("InternetExplorer.Application") If IE.Busy = True Or IE.ReadyState <> READYSTATE_COMPLETE Then MsgBox "L'accès à la page internet demandée n'a pu être réalisé." & Chr(10) & "Veuillez vérifier l'état de la connexion à internet et recommencer l'opération.", vbOKOnly + vbExclamation, "ECHEC DE CONNEXION A INTERNET" Exit Sub End If IE.Visible = True IE.navigate "http://geowebas1.ci.irisnet.be/PRASAFFECTATIONFR/adrResForm.jsp?" & _ "pst=" & Me.CP.Value & _ "&mun=0" & _ "&str=" & dRUE & _ "&nbr=" & Me.N°.Value & _ "&lng=fr" Do Until IE.ReadyState = READYSTATE_COMPLETE DoEvents Loop 'Créér l'objet html Set CodeSource = IE.Document 'Recherche des coordonnées 'Set data = CodeSource.getElementsByTagName("a")[0].href sCoord = data repere = InStr(sCoord, "zoomTo") 'Isoler les coordonnées X et Y If repere Then dX = Val(Mid$(sCoord, repere + 7, 10)) dY = Val(Mid$(sCoord, repere + 19, 10)) End If 'DoCmd.Hourglass False Me.Coord_X = dX Me.Coord_Y = dY fin: Set CodeSource = Nothing Me.Type_bien_maison.SetFocus
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <body leftmargin="2" topmargin="2" bgcolor="#2780C5" text="white" onload="zoomTo(147924.889, 167490.169, -1, -1, 'Rue Cervantès, 65')"> <div <table width="321" border="0" align="left" cellpadding="5" cellspacing="2"> <tr><td width="40" align="left" valign="middle"><img onClick="adrForm()" src="images/jumelle.gif" width="47" height="27"></td> <td width="281" align="left" valign="middle">Résultat de la recherche</td></tr> </table><table border="1" align="left" cellpadding="3" cellspacing="3" bordercolor="#15466A" bgcolor="#2780C5" nowrap> <tr><td>Rec</td><td>Adresse</td></tr> <tr><td><a href="JavaScript:zoomTo(147924.889, 167490.169, -1, -1, 'Rue Cervantès, 65')">1</a></td><td>Rue Cervantès 65, 1190 Forest (Cervantesstraat)</td></tr> </table> </body>
Merci d’avance pour votre aide.
Partager