VBA: lire un fichier texte ligne par ligne 2



Après la fonction permettant de charger le contenu d'un fichier texte en VBA, voici le code VBA qui vous permettra de lire un fichier texte ligne par ligne.

Il suffit d'indiquer le fichier texte qui doit être traité  et le code effectuera une itération (Loop) dans le contenu du fichier en vous laissant facilement accéder à chaque ligne séparément. Vous n'avez qu'à ajouter votre code à exécuter pour chaque ligne (comptage, vérifications, copie des lignes spécifiques,…)

Ceci peut être très utile par exemple dans le cas où vous avez un fichier de données (.csv) et vous voulez travailler seulement avec certaines lignes. Le code VBA que je vous propose peut, entre autre, servir de base pour trier les données avant de les copier vers une Feuille Excel ou même avant d'en créer un nouveau fichier texte…

Traiter un fichier texte ligne par ligne en VBA

Le code suivant est assez explicite et peut facilement être transformé en une fonction. Votre code VBA pour gérer les lignes doit être placé à l'endroit indiqué dans les commentaires (lignes: 18-19).

Sub LireFichierTexteParLigne()
'par: https://excel-malin.com

Application.ScreenUpdating = False
On Error GoTo CodeErreur

Dim IndexFichier As Integer
Dim MonFichier As String
Dim ContenuLigne As String

MonFichier = "C:\MonDossier\MonFichier.txt" '<-- mettez ici le nom du fichier à lire
IndexFichier = FreeFile()
Open MonFichier For Input As #IndexFichier 'ouvre le fichier

While Not EOF(IndexFichier) '
    Line Input #IndexFichier, ContenuLigne     ' lecture du fichier ligne par ligne: la variable "ContenuLigne" contient le contenu de la ligne active
    
    'ajoutez ici votre code à appliquer pour chaque ligne
    '...
    
Wend

Close #IndexFichier ' ferme le fichier
Application.ScreenUpdating = True
Exit Sub

CodeErreur:
MsgBox "Une erreur s'est produite..."
Application.ScreenUpdating = True
End Sub

Pour aller plus loin dans la gestion des textes en VBA

 

 

22 0




Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.

2 commentaires sur “VBA: lire un fichier texte ligne par ligne