VBA: lire le contenu de fichier texte


Il est assez facile et très rapide de lire le contenu des fichiers texte sous toutes leurs formes  dans VBA. Et cela même pour des fichiers assez volumineux (de plusieurs dizaines de mégaoctets).

Notion du "fichier texte" en VBA

Par fichier texte, on peut considérer des fichiers qui sont "lisibles" après ouverture dans un éditeur de texte (par exemple Notepad). Habituellement, ce sont des fichiers journaux, des fichiers de données, des fichiers de certains langages de programmation (VBS, HTML, CSS,…) ou tout simplement des fichiers de "texte clair" (sans formatage). Le suffixe n'a pas d'importance lors de la lecture/l'import via VBA. On peut donc travailler avec des fichiers comme: .txt, .csv, .log, .html, etc.

Il ne s'agit donc pas de fichiers binaires, images, vidéos, archives, etc.

Code de la Fonction VBA pour lire le contenu du fichier texte

Voici donc une fonction qui permet d'extraire le contenu de fichier texte et le placer dans une variable pour une utilisation ultérieure (analyse, découpage, sauvegarde…).

Cette fonction utilise un argument de type String qui contient le chemin complet du fichier que l'on veut lire/importer.

Pour rappel: pour pouvoir mieux gérer les éventuelles erreurs,  il est judicieux de vérifier si le fichier que l'on veut lire existe. Pour cela, la fonction pour vérifier si le fichier existe peut s'avérer fort utile.

Exemple de lecture de contenu d'un fichier texte en VBA

La procédure qui suit montre l'utilisation en pratique de la fonction LireFichierTexte. Vous pouvez l'utiliser tel quelle (il suffit de copier & coller les deux codes VBA) et simplement changer le nom de fichier à lire.

Pour aller plus loin

Travail avec des fichiers texte est une opération courante dans les applications avancées en VBA. Et ce sujet est largement développé ici sur Excel-Malin.com

 

 

5 0


Partagez cette page...
Share on FacebookShare on Google+Share on LinkedInTweet about this on TwitterShare on RedditShare on TumblrDigg thisEmail this to someone

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.