bonjour a tous
voila une toute petite fonction qui peut avoir bien des utilités
elle récupère le code source d'une page sur le net au format html ou format texte
voila le code pour la fonction
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
|
Option Explicit
Dim Destination As String 'variable pour le chemin complet du fichier de destination
Dim l_URL As String ' variable pour le lien de la page html
Dim Lapage_en_HTML 'variable pour l'object "Microsoft.XMLHTTP"( l'object XML)
Dim sourcetext As String ' varaible pour le texte de sortie au format texte
Dim texte As String 'variable pour le texte a découpé par les ""chr(13)""
Dim i As Long ' variable pour le decompte des lignes dans le texte de sortie en html ou texte
Public Function GetCodeSource(sURL, Optional au_format_text As Boolean = "false")
Set Lapage_en_HTML = CreateObject("Microsoft.XMLHTTP") 'instancie l'object
Lapage_en_HTML.Open "GET", sURL 'ouvre l'url dans l'object
Lapage_en_HTML.Send
Do: DoEvents: Loop While Lapage_en_HTML.ReadyState <> 4 'attendre que la page soit chargée
'le code source est dans """"Lapage_en_HTML.ResponseText""""
'on créé un object "htmlfile"
With CreateObject("htmlfile")
'on y ecrit le codesource complet
.Write Lapage_en_HTML.ResponseText
'Ici on garde que le texte au format texte( sans les balises)
sourcetext = .body.innerText
End With
'selon si la variable "au_format_text" est a true ou falsele texte de sortie sera en html ou texte
GetCodeSource = IIf(au_format_text, sourcetext, Lapage_en_HTML.ResponseText)
sourcetext = ""
End Function |
veuillez noter que la variable "au_format_text" dans la fonction est "OPTIONAL" c'est cette variable qui nous servira a déterminer le format de sortie lors de son appel
et voila un exemple d'utilisation :
nous allons enregistrer le code source dans un fichier texte sur le bureau
avec les balises
1 2 3 4 5 6 7 8 9 10 11 12
|
Sub test1()
l_URL = "http://www.programme-tv.net/programme/programme-tnt.html" 'la variable l_URL contient le lien de la page html que l'on veux récupérer
Destination = "C:\users\" & Application.UserName & "\Desktop\code-source-de-lapage.txt" 'la variable destination contient le chemin complet du fichier de destination
texte = GetCodeSource(l_URL) 'avec les balises(format html)
Open Destination For Output As #1 'ouverture du nouveau fichier et ecriture de chaque ligne presente dans le texte
For i = 0 To UBound(Split(texte, Chr(13)))
Print #1, Split(texte, Chr(13))(i)
Next
'fermeture du fichier après écriture
Close #1
End Sub |
ou sans les balise(format texte )
1 2 3 4 5 6 7 8 9 10 11 12
|
Sub test2()
l_URL = "http://www.programme-tv.net/programme/programme-tnt.html" 'la variable l_URL contient le lien de la page html que l'on veux récupérer
Destination = "C:\users\" & Application.UserName & "\Desktop\code-source-de-lapage.txt" 'la variable destination contient le chemin complet du fichier de destination
texte = GetCodeSource(l_URL, True) 'sans les balises(format texte)
Open Destination For Output As #1 'ouverture du nouveau fichier et ecriture de chaque ligne presente dans le texte
For i = 0 To UBound(Split(texte, Chr(13)))
Print #1, Split(texte, Chr(13))(i)
Next
'fermeture du fichier apres ecriture
Close #1
End Sub |
bien sur le lien de la page est a renseigner ici:
l_URL = "http://www.programme-tv.net/programme/programme-tnt.html"
voila elle fonctionne parfaitement bien et pour une fois le code est propre et commenté

qu'en pensez vous ?
Partager