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
|
Public Sub chercherLiens()
'Ajouter la référence Microsoft Scripting Runtime
Dim chaine As String, sousChaine As String, fso As Scripting.FileSystemObject, fichier As Scripting.File
Dim nomFichierTexte As String, texte As Scripting.TextStream, i As Integer, debut As Integer, fin As Integer
Dim chaineRecherche As String, chaineFin As String
'Les lien commencent par la chaine a hrep=
chaineRecherche = "a hrep="""
'Fin de la balise
chaineFin = """>"
'Nom du fichier texte
nomFichierTexte = "liens.txt"
Set fso = New Scripting.FileSystemObject
'On suppose que le fichier texte "liens.txt" est dans le même répertoire que le classeur Excel
Set fichier = fso.GetFile(ThisWorkbook.Path & "\" & nomFichierTexte)
Set texte = fichier.OpenAsTextStream(ForReading)
i = 1
Do
chaine = texte.ReadLine
fin = 1
debut = InStr(fin, chaine, chaineRecherche, vbTextCompare)
'Il peut y avoir plusieurs liens sur la même ligne
While (debut > 0)
'On récupère la position de fin du lien via la variable chaineFin
fin = InStr(debut, chaine, chaineFin, vbTextCompare)
'On récupère le lien
sousChaine = Mid(chaine, debut + Len(chaineRecherche), fin - debut - Len(chaineRecherche))
'On écrit le lien dans les cellules de la feuille Feuil1
Feuil1.Range("A" & i) = sousChaine
i = i + 1
'On cherche le début d'un éventuel nouveau texte "a hrep="
debut = InStr(fin + 1, chaine, chaineRecherche, vbTextCompare)
Wend
Loop Until texte.AtEndOfStream
texte.Close
'On fait du ménage au niveau des variables
Set texte = Nothing
Set fichier = Nothing
Set fso = Nothing
End Sub |
Partager