Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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

  • exemple.xlsx
    7.7 KB · Affichages: 49
  • exemple.xlsx
    7.7 KB · Affichages: 56
  • exemple.xlsx
    7.7 KB · Affichages: 56

youky(BJ)

XLDnaute Barbatruc
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
 

youky(BJ)

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

Re,
Macro dans ton fichier en retour
Bruno
 

Pièces jointes

  • exemple2.xls
    33 KB · Affichages: 48
  • exemple2.xls
    33 KB · Affichages: 46
  • exemple2.xls
    33 KB · Affichages: 39

edouardgg

XLDnaute Nouveau
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

  • exemple2(1).xlsm
    251.9 KB · Affichages: 52

youky(BJ)

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

Voici de retour le fichier
voir en feuille ESSAI le résultat
Attention la macro tourne prés de 1 minute avec les 18000 lignes
Bruno
 

Pièces jointes

  • exemple3.zip
    365.2 KB · Affichages: 26
  • exemple3.zip
    365.2 KB · Affichages: 24
  • exemple3.zip
    365.2 KB · Affichages: 24

Discussions similaires

Réponses
5
Affichages
246
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…