Extraction de fichier .txt - Boucle - Tableaux
Bonjour à tous
Je sollicite votre aide pour cette extraction de fichier texte, j'ai déjà parcouru le forum mais je n'ai pas trouvé de solution qui correspond à mon problème.
Les fichiers .txt contient des codes sources de siteweb que j'ai extraits
à partir d'un autre procédé autre que VBA.
J'ai tenté de modifier plusieurs fois le code que j'ai écrit mais en vain.
Je joint 2 exemples de ces fichiers .txt et un fichier excel pour test contenant le résultat que
j'essaie d'obtenir avec le code que j'ai écrit.
Un extrait du code source, j'ai remplacé les chaines de caractère très longue mais je n'ai pas
modifié les espaces ou les balises. (les chaines de caractère peuvent contenir des chiffres et des
lettres)
</strong></p> <p> <a href="/lienP/Chaine1a/">Chaine1a</a>
chiffres </p> <p> <a
href="/lienP/Chaine1b/">Chaine1b</a> chiffres </p>
<p> <a href="/lienP/Chaine1c/">Chaine1c</a>
chiffres </p> <p> <a
href="/lienP/Chaine1d/">Chaine1d</a> chiffres </p>
</div> <div class="clearboth0"></div> </div>
<!------------------------------------------------------------------------------ end index body -->
<!------------------------------------------------------------------------------ Clear Both -->
<style> #footer2012{width:930px
Merci d'avance pour votre aide.
Ci-après le code VBA:
Sub ExtractionDonnéeTxt()
Dim ws As Worksheet
Dim wb As Workbook
'Dim textline As String
Dim Text As String
Set fso = CreateObject("Scripting.FileSystemObject")
Set fldr = fso.GetFolder("D:\Dossier\Source")
For Each File In fldr.Files
Open File For Input As #1
Taille_fichier = LOF(1)
contenu = Input(Taille_fichier, 1)
Close #1
position_fin = InStr(1, contenu, "#footer2012{width:930px")
contenu = Left(contenu, position_fin)
position_début = InStrRev(contenu, "<strong></p>")
contenu = Mid(contenu, position_début, position_fin - position_début + 1)
'Debug.Print contenu
chaine = Split(CStr(contenu), "</a>")
For i = o To UBound(chaine)
chaine(i) = Replace(Replace(Replace(Replace(Replace(chaine(i), "</p>", ""), "<p>", ""), "strong>", ""), "<br>", ""), "</div>", "")
'Debug.Print chaine(i)
pos_fin = InStr(1, chaine(i), ">")
chaine(i) = Left(chaine(i), pos_fin)
pos_déb = InStr(1, chaine(i), "/")
contenu = Mid(chaine(i), pos_déb, pos_fin - pos_déb - 1)
'Debug.Print contenu
Next
Next File
End Sub
bonjour
1/
tu fais du code sans commentaires : mauvaise pratique
2/ tu ne nous dis pas ce que tu veux extraire.
s'il s'agit de données, abandonne VBA, et vois Power Query (tu devras sans doute le télécharger, voir les tutos Power Query pour Excel 2010)
PQuery
Merci pour ta réponse jmd.
1- pardon, je pensais avoir charger 2 fichier .txt mais ca n'a pas réussi.
2- Non j'ais mis les données que je veux extraire dans mon fichier Excel.
Je ne sais pas utiliser ou je n'ai pas Power Querry.
Encore merci mais, je vais poursuivre cette voie parce que j'ai mis trop de temps à en arriver à ce point.
Mais ton aide sera le bienvenu sur l'utilisation du fameux Power Query.
impossible de charger les fichiers source.