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.
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 :
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 :
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
Derniers articles parBenoît RIVIERE (voir tous)
- VBA/SQL vs Power Query : deux solutions complémentaires - mercredi 2 octobre 2024
- L’IA dans les cabinets comptables : cas concrets - jeudi 26 septembre 2024
- EXCEL : insérer une image ou un logo dans une cellule - lundi 16 septembre 2024
- Lancer l’exécution d’un script Python à partir d’une macro VBA - lundi 9 septembre 2024
- Open Data : quoi de neuf ? - lundi 2 septembre 2024
Pingback: 10 ans – Audit & Systèmes d'Information