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

tri puis concatenation

  • Initiateur de la discussion Initiateur de la discussion jonleboss
  • 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 !

J

jonleboss

Guest
Bonjour à tous,

je fais appel à votre aide car je cherche depuis des heures à tri une liste de clients qui achètent des produits puis à recopier la liste de clients pour un produits defini dans une seule cellule....De façon à faire un récapitulatif...Je vous ai mis mon fichier de test en PJ!

Merci d'avance pour votre talent
 

Pièces jointes

Re : tri puis concatenation

Bonsoir Roland,

En fait je veux reprendre le nom des différents clients qui achèteraient le produit 1 (par exemple) dans une cellule récapitulative du type : nom 1, nom 3, nom 6, nom 7

J'espère être assez clair...?

Bye
 
Re : tri puis concatenation

Bonsoir,
essaie ce code (à adapter) :

Code:
Sub tri_et_conca()
Range("F6,F8,F10").ClearContents
For Each cel In Range("A2:A" & [A65000].End(xlUp).Row)
    If cel.Value = Right([E6], 1) Then [F6] = [F6] & ", " & cel.Offset(0, 1).Value
    If cel.Value = Right([E8], 1) Then [F8] = [F8] & ", " & cel.Offset(0, 1).Value
    If cel.Value = Right([E10], 1) Then [F10] = [F10] & ", " & cel.Offset(0, 1).Value
Next cel
For Each cel In Range("F6,F8,F10")
    cel.Value = Right(cel.Value, Len(cel) - 2)
Next cel
End Sub

Je dis à adapter, car je prends en référence le A de produits A dans ta cellule E6 (par exemple, ou E8, ou E10)
Maintenant, si tu mets tout le produit dans la cellule E6 (tomate, pomme de terre.....) et rien que le produit, ainsi que dans les cellules A2... (attention à l'orthographe, VBA est très pointilleux), tu peux remplacer par :

Code:
Sub tri_et_conca()
Range("F6,F8,F10").ClearContents
For Each cel In Range("A2:A" & [A65000].End(xlUp).Row)
    If cel.Value = [E6] Then [F6] = [F6] & ", " & cel.Offset(0, 1).Value
    If cel.Value = [E8] Then [F8] = [F8] & ", " & cel.Offset(0, 1).Value
    If cel.Value = [E10] Then [F10] = [F10] & ", " & cel.Offset(0, 1).Value
Next cel
For Each cel In Range("F6,F8,F10")
    cel.Value = Right(cel.Value, Len(cel) - 2)
Next cel
End Sub

Edit, oupss, collision, bonsoir ninbihan
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
211
wDog66
W
Réponses
18
Affichages
607
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…