jeudi 22 août 2013

Excel: solution pour générer un classeur contenant plusieurs fichiers CSV

C'était un petit problème qui a ennuyé la plupart des utilisateurs de base de données :
Comment générer automatiquement un fichier Excel contenant plusieurs CSV (à partie d'une base de données par exemple).
Toutes les bases de données sont capables d'exporter une table vers un classeur Excel en utilisant le format CSV, ce format étant reconnu automatiquement par Excel. En revanche, pas moyen d'exporter plusieurs tables d'une base de données vers un unique classeur Excel, avec un onglet par table. Cette impossibilité est la conséquence (entre autre) du format propriétaire d'Excel. Voici une astuce permettant de "créer" ce fichier Excel.

Voici la marche à suivre (avec Excel 2003):
  1. Exportez vos tables vers des fichiers CSV, le tout dans un même répertoire .
  2. Ajoutez dans le même répertoire le fichier Excel disponible plus bas.
  3. Ouvrez le fichier Excel: le chargement des fichiers CSV se fera automatiquement.
Explication:
Ce fichier Excel est un classeur contenant un seul onglet, lui-même contenant une macro en charge d'importer tous les fichiers CSV présent dans le même répertoire. Cette macro se lance automatiquement, mais uniquement si les fichiers n'ont pas été déjà importés lors d'une précédente ouverture. Par la suite, l'opération peut-être reproduite manuellement en modifiant les paramètres présents dans l'onglet 'utilitaire", comme par exemple le préfixe des fichiers à importer.

Voici la copie d'écran de l'onglet "utilitaire" permettant de reproduire l'opération, autant de fois qu'il vous plaira.


Alors me direz vous, cela ne permet pas réellement de générer automatiquement un fichier Excel incluant plusieurs CSV. En revanche, si vous avez besoin d'envoyer automatiquement ce fichier,  rien de plus simple de créer un Zip contenant tous les CSV en question, en incluant ce fichier Excel. Le destinataire (ou vous même) n'auront plus qu'à dézipper la totalité des fichiers dans un nouveau répertoire, pour permettre d'obtenir le même résultat, au moment de l'ouverture du fichier Excel du répertoire.

Ce fichier Excel est utilisable tel quel, mais est facile à adapter selon votre besoin si vous connaissez un minimum de VBA. Personnellement, j'ai ajouté la suppression des fichiers importés à postériori, un renommage du fichier Excel après le chargement, et la gestion automatique des préfixes et suffixes.

En espérant que ce petit fichier vous sera utile.

Lien:
Fichier Excel (version 2003) pour charger automatiquement les fichiers CSV présent dans le même répertoire.



Aucun commentaire: