Sub ImportTxt()
Dim fichierTxt As Object, pathFichierTxt As String, ligneTxt As String, ligneEcriture As Long, feuilleDest As Worksheet
'VARIABLES A ADAPTER
'chemin du fichier texte
pathFichierTxt = "E:\XLS\test\data.txt"
'feuille destination - où les données vont être importées
Set feuilleDest = ThisWorkbook.ActiveSheet
'initialiser la feuille d'import
feuilleDest.Cells.Clear
feuilleDest.Range("A1").Value = "NOM"
feuilleDest.Range("B1").Value = "PRENOM"
feuilleDest.Range("C1").Value = "TELEPHONE"
feuilleDest.Range("D1").Value = "DATE DE LIVRAISON"
feuilleDest.Range("E1").Value = "GRAVITE DE LA PLAINTE"
feuilleDest.Range("F1").Value = "PRODUIT CONCERNE"
ligneEcriture = 1
'ouvrir le fichier texte (en lecture)
Set fichierTxt = CreateObject("Scripting.FileSystemObject").OpenTextFile(pathFichierTxt, 1)
'boucler sur chaque ligne jusqu'à la finb du fichier
While Not fichierTxt.AtEndOfStream
'récupérer la ligne courante
ligneTxt = fichierTxt.ReadLine
'si la ligne commence par "NOM; "
If ligneTxt Like "NOM; *" Then
'incrémenter la ligne d'écriture
ligneEcriture = ligneEcriture + 1
'écrire dans la colonne A le reste de la ligne
feuilleDest.Range("A" & ligneEcriture).Value = Strings.Replace(ligneTxt, "NOM; ", "")
'sinon, si la ligne commence par "PRENOM; "
ElseIf ligneTxt Like "PRENOM; *" Then
'écrire dans la colonne B le reste de la ligne
feuilleDest.Range("B" & ligneEcriture).Value = Strings.Replace(ligneTxt, "PRENOM; ", "")
'sinon, si la ligne commence par "TELEPHONE; "
ElseIf ligneTxt Like "TELEPHONE; *" Then
'écrire dans la colonne C le reste de la ligne
feuilleDest.Range("C" & ligneEcriture).Value = Strings.Replace(ligneTxt, "TELEPHONE; ", "")
'sinon, si la ligne commence par "DATE DE LIVRAISON; "
ElseIf ligneTxt Like "DATE DE LIVRAISON; *" Then
'écrire dans la colonne D le reste de la ligne
feuilleDest.Range("D" & ligneEcriture).Value = Strings.Replace(ligneTxt, "DATE DE LIVRAISON; ", "")
'sinon, si la ligne commence par "GRAVITE DE LA PLAINTE; "
ElseIf ligneTxt Like "GRAVITE DE LA PLAINTE; *" Then
'écrire dans la colonne E le reste de la ligne
feuilleDest.Range("E" & ligneEcriture).Value = Strings.Replace(ligneTxt, "GRAVITE DE LA PLAINTE; ", "")
'sinon, si la ligne commence par "PRODUIT CONCERNER; "
ElseIf ligneTxt Like "PRODUIT CONCERNER; *" Then
'écrire dans la colonne F le reste de la ligne
feuilleDest.Range("F" & ligneEcriture).Value = Strings.Replace(ligneTxt, "PRODUIT CONCERNER; ", "")
End If
Wend
'fermer le fichier texte - détruire l'objet
fichierTxt.Close: Set fichierTxt = Nothing
End Sub