Création d'une liste dans une seule cellule selon un critère

  • Initiateur de la discussion Initiateur de la discussion edouardgg
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

edouardgg

XLDnaute Nouveau
Bonjour à tous,

Après une recherche rapide sur le forum, je n'ai pas trouvé la solution à mon problème. Je dois, dans le cadre de mon job, crée des fiches récapitulatives pour chaque machine présente en production (ID machine, date de mise en service, valeur brute etc...) Jusqu'ici pas de problème, j'ai crée une base de données sur Excel pour pouvoir utiliser le publipostage (étant donné que j'aurai au final environ 700 fiches).
Par contre, je dois aussi faire apparaitre la liste des factures qui se rattachent à chaque machine. Pour une machine, je peux avoir plusieurs dizaines de factures. Or, si j'insère un champs de fusion "N° facture", je n'aurai qu'un seul numéro et non la liste complète.
Mon idée serait de créer une macro qui permettrait de créer à côté de chaque ligne la liste des factures (dans la même cellule), donc pour chaque numéro machine (ou ID IMMO) séparées par un point virgule.

J'ai crée un fichier "exemple" pour illustrer mon problème tel qu'il est. Ce sera beaucoup plus explicite que mon explication assez vague 😀

Le résultat est en fait la création d'une liste, dans une cellule pour chaque ligne, avec comme séparateur le point virgule, de manière à pouvoir utiliser la colonne dans un publipostage, et ainsi n'avoir qu'un seul champ de fusion pour obtenir l'ensemble des factures.

J'espère avoir été à peu près clair.

Merci d'avance de votre aide.
 

Pièces jointes

Re : Création d'une liste dans une seule cellule selon un critère

Bonjour Edouard,
Voici un code
Bruno

Code:
Sub groupe()
bas = [A65536].End(xlUp).Row
For lig = 2 To bas
tx = Cells(lig, 1)
For k = lig + 1 To bas
If Cells(lig, 2) = Cells(k, 2) Then tx = tx & " ; " & Cells(k, 1): Rows(k).Delete: bas = bas - 1: k = k - 1
Next
Cells(lig, 3) = tx
Next
End Sub
 
Re : Création d'une liste dans une seule cellule selon un critère

Re,

Merci encore de ton aide. Je touche presque au but grâce à toi, merci ! J'ai essayé d'adapter ton code à mon fichier "final" mais j'ai l'impression d'avoir une boucle sans fin... certainement ma faute.

L'idée est d'avoir la liste de factures en colonne C pour chaque ID IMMO, sans si possible supprimer les doublons colonne A et B. Supprimer seulement les doublons dans la liste.... Je ne sais pas si je suis clair...

Ci-joint mon fichier

Merci encore !

Edouard
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
253
Réponses
11
Affichages
248
Retour