EXCEL, VBA : importer un fichier texte dans Excel

L’analyse de données passe par l’extraction de données provenant de logiciels tiers. Ces extractions sont fréquemment matérialisées par des fichiers texte ou CSV. L’importation de ces données dans Excel peut être réalisée manuellement mais l’automatisation de ces importations se révélera beaucoup plus efficace en présence de volumes de fichiers conséquents, tel est le cas pour l’analyse des comptes dans un groupe de sociétés.

Fichier CSV à importer

Fichier CSV à importer

Le langage VBA implémenté dans Excel dispose de la commande OpenText dédiée à l’ouverture de fichiers texte. Cette commande présente les mêmes fonctionnalités que le convertisseur qui suit l’ouverture d’un fichier texte (menu Fichier / Ouvrir) ou encore dans le menu Données / Convertir :

Assistant de conversion d'Excel : choix du type de données d'origine

Assistant de conversion d’Excel : choix du type de données d’origine

La commande OpenText permet d’ouvrir des fichiers délimités ou colonnes (à largeur fixe). C’est cette dernière catégorie de fichiers qui fait l’objet de notre intérêt dans le présent article.

Dans notre exemple, OpenText ouvre les balances REFECO d’un groupe de concessionnaires automobiles et les mets en forme afin d’analyser les données d’exploitation mensuelles.

Cette commande, associée Workbooks, s’utilise ainsi :

Workbooks.OpenText Filename:="T:\REFECO\REODBL01.030", Origin:=xlMSDOS, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(6, 1), Array(7, 1), Array(16, 1), Array(22, 1), Array(28, 1), Array(34, 1), Array(42, 1), Array(142, 1), Array(163, 1), Array(184, 1), Array(205, 1), Array(226, 1), Array(247, 1), Array(268, 1)), TrailingMinusNumbers:=True

Le paramètre Filename fournit le nom du fichier texte et l’arborescence pour y accéder, Startrow indique à partir de quelle ligne commencer l’importation, DataType (ici xlFixedWidth pour largeur fixe),  FieldInfo permet de définir les différents champs de données à l’aide de l’instruction Array (Array(6,1) : définit un champ de donnée à partir du sixième caractère).

Les paramètres d’OpenText sont les suivants (source : https://msdn.microsoft.com/fr-fr/library/office/Ff837097.aspx) :

Nom Obligatoire/Facultatif Type de données Description
Filename Obligatoire Chaîne Spécifie le nom du fichier texte à ouvrir et analyser (y compris le chemin d’accès au fichier).
Origin Facultatif Variant Origine du fichier texte. Il peut s’agir de l’une des constantes XlPlatform suivantes : xlMacintosh, xlWindows ou xlMSDOS. Il peut également s’agir d’un nombre entier représentant le numéro de la page de code souhaitée. Par exemple, « 1256 » spécifie que le codage du fichier texte source est arabe (Windows). Si cet argument n’est pas spécifié, la méthode utilise le paramètre actuel de l’option Origine du fichier dans l’Assistant Importation de texte.
StartRow Facultatif Variant Numéro de la ligne à partir de laquelle commencer l’analyse du texte. La valeur par défaut est 1.
DataType Facultatif Variant Format de colonne des données dans le fichier. Il peut s’agir de l’une des constantes XlTextParsingType suivantes : xlDelimited (délimité) ou xlFixedWidth (largeur fixe). Si cet argument n’est pas spécifié, Microsoft Excel tente de déterminer le format de colonne lors de l’ouverture du fichier.
TextQualifier Facultatif XlTextQualifier Spécifie l’identificateur de texte.
ConsecutiveDelimiter Facultatif Variant True pour que des délimiteurs identiques consécutifs soient considérés comme un seul délimiteur. La valeur par défaut est False.
Tab Facultatif Variant True pour que le caractère de tabulation serve de délimiteur (la propriété DataType doit être définie sur xlDelimited). La valeur par défaut est False.
Semicolon Facultatif Variant True pour que le caractère point-virgule serve de délimiteur (la propriété DataType doit être définie sur xlDelimited). La valeur par défaut est False.
Comma Facultatif Variant True pour que le caractère virgule serve de délimiteur (la propriété DataType doit être définie sur xlDelimited). La valeur par défaut est False.
Space Facultatif Variant True pour que le caractère espace serve de délimiteur (la propriété DataType doit être définie sur xlDelimited). La valeur par défaut est False.
Other Facultatif Variant True pour que le caractère spécifié par l’argument OtherChar serve de délimiteur (la propriété DataType doit être définie sur xlDelimited). La valeur par défaut est False.
OtherChar Facultatif Variant (obligatoire si Autre a la valeur True). Spécifie le caractère de délimitation quand Autre a la valeur True. Si plusieurs caractères sont spécifiés, le premier est utilisé et les autres sont ignorés.
FieldInfo Facultatif Variant Matrice contenant des informations d’analyse pour les différentes colonnes de données. L’interprétation dépend de la valeur de DataType. Lorsque les données sont délimitées, cet argument est une matrice comprenant des matrices de deux éléments spécifiant chacune les options de conversion d’une colonne particulière. Le premier élément est le numéro de colonne (en base 1), et le second est l’une des constantes XlColumnDataType spécifiant la manière dont la colonne est analysée.
TextVisualLayout Facultatif Variant Mise en page visuelle du texte.
DecimalSeparator Facultatif Variant Séparateur décimal utilisé par Microsoft Excel lors pour la reconnaissance des nombres. Par défaut, il s’agit du paramètre système.
ThousandsSeparator Facultatif Variant Séparateur des milliers utilisé par Excel lors pour la reconnaissance des nombres. Par défaut, il s’agit du paramètre système.
TrailingMinusNumbers Facultatif Variant Spécifiez True si les nombres suivis du signe moins doivent être traités comme des nombres négatifs. Si la valeur est False ou omise, les nombres suivis du signe moins sont traités comme du texte.
Local Facultatif Variant Spécifiez True si les paramètres régionaux de l’ordinateur doivent être utilisés pour les séparateurs, les nombres et la mise en forme des données.

Une fois importé, le fichier texte est ouvert dans un nouveau classeur Excel :

Fichier CSV importé dans Excel

Fichier CSV importé dans Excel

Tous les articles en rapport avec la conversion de fichier.

Approfondir le sujet : Programmer en VBA / Découvrir la série d’articles Maîtriser Excel

Share Button
The following two tabs change content below.
Après seize années passées en cabinet d’expertise-comptable et de commissariat aux comptes (où j’ai exercé comme expert-comptable et chef de mission audit), j’ai pris le poste de directeur comptable d’un groupe de distribution automobile en novembre 2014. Au cours de ma carrière, j’ai acquis une expérience significative en audit et en exploitation des systèmes d’information (analyse de données, automatisation des tâches, programmation informatique) au service de la production des comptes annuels et consolidés. C’est cette expérience personnelle et ma passion pour l’informatique que je partage sur ce blog. Mon CV / Réalisations personnelles et projets informatiques / Ma collection / Me contacter

Un commentaire

  1. Pingback: 10 ans – Audit & Systèmes d'Information

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.