Formatage d’un carnet d’adresses avec Excel

Pour la reprise des articles après ce petit break involontaire, nous allons traiter un cas pratique de Philippe.

 

La question :

« Je récupère un fichier XL issu d’un outil de gestion commerciale mais je souhaite en modifier le format, selon le schéma suivant :

Fichier d’origine :
Société              Contact
Soc 1                  Contact 1
Soc 1                  Contact 2
Soc 1                  Contact 3
Soc 2                  Contact 4
Soc 2                  Contact 5
Soc 3                  Contact 6

Fichier cible :
Société               Contact A                 Contact B                Contact C
Soc 1                   Contact 1                        Contact 2                 Contact 3
Soc 2                   Contact 4                       Contact 5
Soc 3                   Contact 6

Je suis sous Excel 2007. »

 

Ma réponse :

Si dans un premier temps, je serais naturellement parti sur du VBA pour optimiser le traitement, je suis vite revenu en arrière en me disant que, pour beaucoup, cette solution était assez difficile à transposer sur un fichier qui ne ressemblerait pas forcément à mon exemple. Je me suis donc résolu à travailler avec des formules de recherches, quitte à rajouter quelques étapes intermédiaires. J’ai donc proposé à Philippe plusieurs étapes :

 

  • Etape 1 : Trier le fichier extrait sur le champ « Société » en ordre croissant. Pour le second champ, il n’y a, à mon sens, pas d’intérêt particulier à un quelconque tri, sauf s’il y en a un pour l’utilisateur final.

 

  • Etape 2 : Ensuite, une fois les en-têtes du fichier cible créés, il faut l’alimenter avec les données « Société », sans doublons. Pour cela, autant utiliser un filtre élaboré permettant de copier les données dans le tableau cible en regroupant.

 

  • Etape 3 : Je rajoute des colonnes dans les fichiers pour y intégrer des formules simples. Dans le fichier extrait, j’intègre après la colonne « Société », une colonne renseignée avec la formule LIGNE, ce qui grâce au tri, me permettra d’identifier le numéro de la ligne où trouver en premier chaque société (merci le tri). Dans le fichier cible, j’insère deux colonnes après le champ « Société » : une avec la formule NB.SI pour obtenir le nombre de contacts enregistrés par sociétés, une autre avec une RECHERCHEV apportant le numéro de ligne se trouvant dans la colonne insérée du premier fichier.

 

  • Etape 4 : Enfin, dans les champs de contacts du fichier cible, je rentre des formules de RECHERCHEV qui me permettront d’aller retrouver les données dans l’extraction de départ. Le premier champ est une formule simple car la RECHERCHEV prend systèmatiquement la première valeur qu’elle trouve (donc sur la même ligne que la première fois que l’on rencontre la société en question). Les secondes donnent un résultat si le nombre de contacts est supérieur à 1 (utilisation de la fonction SI) et utilisent le numéro de la ligne et ajoute 1 ou 2 en fonction du nombre de contacts pour se décaler d’une ligne supplémentaire (d’où l’importance du tri car, sans ce dernier, elles prendraient le contact d’une autre société).

 

Comme un exemple est toujours mieux qu’un long discours, je mets bien évidemment mon fichier d’exemple en téléchargement pour que vous puissiez vous en inspirer.

Philippe l’a mis en place assez rapidement et cela a bien fonctionné pour sa base de données. L’avantage de cette solution est que, si vous faîtes souvent des extractions similaires de vos bases commerciales, vous pouvez sans problème vous créer un fichier modèle qui sera réutilisé à chaque fois, à condition d’adapter vos formules à votre nombre de lignes.

Si parmi les lecteurs, quelqu’un a une solution plus simple, plus rapide et qui ne réinvente pas la roue à chaque extraction, je suis preneur et je me ferai une joie de partager sa solution dans un article du blog.

En attendant, bon formatage !



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.