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).

VBA: extraire du texte d'un fichier .txt

Il s'agit d'une fonctionnalité primordiale si vous travaillez avec des données: vous pouvez alors charger les données directement dans une variable sans passer par (par exemple) les Feuilles du Classeur Excel. Elle vous permet aussi de lire les fichiers log ce qui est important quand vous souhaitez de créer une application un peu plus sophistiquée avec VBA. Vous en aurez besoin si vous voulez apporter des modifications ou faire des recherches dans les fichiers de données tels que des .csv. Et si vous souhaitez utiliser les Formulaires, c'est un très bon moyen de remplir vos ListBox et vos ComboBox.

A titre personnel, je vous avoue utiliser cette fonctionnalité presque quotidiennement

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
  • .json

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

Code de la Fonction VBA pour lire le contenu d'un fichier texte

Voici donc la fonction VBA qui permet d'extraire le contenu de fichier texte et de 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. Son utilisation est donc très simple.

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.

Et pour votre information, cette fonction "ne bloque pas" le fichier texte pendant qu'elle le lit. Elle accède le fichier uniquement en mode "lecture" et ne l'ouvre donc pas. Ce qui signifie que le fichier n'est pas bloqué pour les autres utilisateurs (ou procès).

Exemple pratique 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 telle quelle (il suffit de copier & coller les deux codes VBA) et simplement changer le nom de fichier à lire.

Ce code va donc lire le contenu du fichier text et ensuite afficher ce contenu dans une fenêtre de dialogue (MsgBox).

 

Pour aller plus loin en VBA…

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

Et voici quelques autres articles qui pourraient vous être utiles:

 

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Commentaire sur “VBA: lire le contenu de fichier texte”