Fusionner le contenu de plusieurs cellules avec condition

Fermé
fbrcrsi Messages postés 23 Date d'inscription vendredi 31 mars 2017 Statut Membre Dernière intervention 6 janvier 2020 - 8 déc. 2017 à 11:03
fbrcrsi Messages postés 23 Date d'inscription vendredi 31 mars 2017 Statut Membre Dernière intervention 6 janvier 2020 - 11 déc. 2017 à 00:29
Bonjour.
J'ai un nouveau casse tête (pour moi)
J'aimerais, avec une formule, pouvoir fusionner des données dans une colonne, vers une seule cellule, si dans la colonne voisine un nom client est identique.
Comme mes mots n'expliquent pas suffisamment ce que j'aimerais, voici un fichier exemple joint :

https://www.cjoint.com/c/GLikc5gmgVK

Merci pour vos avis éclairés.

Fred.



3 réponses

via55 Messages postés 14501 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 novembre 2024 2 735
8 déc. 2017 à 23:53
Bonjour Fred

Pourquoi vouloir fusionner les cellules et placer plusieurs valeurs dans une même cellule alors que cela n'a que des inconvénients (plus possibilité de faire des calculs sur ces valeurs, très gênant pour appliquer des formules ou des macros au tableau ..)

Si tu veux regrouper les données par client utilise plutôt un tableau croisé dynamique

Cdlmnt
Via
0
Raymond PENTIER Messages postés 58744 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 3 décembre 2024 17 248
9 déc. 2017 à 02:26

Bonjour Fred.

Je souscris complètement à la réponse de via55, que je salue amicalement.
Il vaudrait mieux, si tu veux récapituler les infos par client, opter pour une présentation comme celle en vert :
0
fbrcrsi Messages postés 23 Date d'inscription vendredi 31 mars 2017 Statut Membre Dernière intervention 6 janvier 2020
10 déc. 2017 à 19:33
Bonsoir vous deux.
Merci pour vos réponses.
A via55: pourquoi vouloir fusionner ? Pas de problèmes de calcul puisque ces cellule ne seront que du texte, et parce-que l'outil pro qui me permet d'extraire des données au format excel ne me permet pas de le faire en amont, et du coup je voudrais automatiser cette fusion pour le classeur excel que je prépare pour mes collègues.
Après le TCD est une idée qui m'a traversé l'esprit, mais je n'arrive pas a récupérer les données regroupées dans le TCD pour les inclure dans une seule cellule.

Merci en tout cas.

Fred
0
via55 Messages postés 14501 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 novembre 2024 2 735
Modifié le 10 déc. 2017 à 21:28
Bonsoir Fred

Bon si tu tiens à inscrire plusieurs données dans une seule cellule il faut passer par une macro en VBA
Ouvre l'éditeur VBA avec ALT+F11 puis Insertion - Module et tu copies et colle la macro suivante dans la page avant de fermer l'éditeur (la macro a été établie d'après les lignes et colonnes de ton fichier exemple, modifier dans la macro pour plus de lignes et/ou d'autres colonnes
Sub classement()
x = 1
For n = 6 To 14 ' boucle sur les lignes 6 à 14
If Application.WorksheetFunction.CountIf(Range("A6:A" & n), Range("A" & n)) = 1 Then x = x + 1: Range("G" & x) = Range("A" & n) ' si client pour 1ere fois dans la liste on incrémente x et on écrit nom client en col G
Next
For k = 2 To x ' boucle sur les  lignes 2 à x
client = Range("G" & k) ' récupére nom du client en G
donnees = ""
For j = 6 To 14 ' boucle sur les lignes 6 à 14
If Range("A" & j) = client Then donnees = donnees & Chr(10) & Range("B" & j) 'si nom du client en col A on ajoute la valeur en B à la variable donnes aprsè un saut de ligne
Next j
Range("H" & k) = donnees ' Recopie donnees en col H
Next k
End Sub


Ensuite tu lances la macro depuis ta feuille avec Developpeur - Macros - choisir la macro classement et Exécuter

Cdlmnt
Via

"L'imagination est plus importante que le savoir."    A. Einstein
0
fbrcrsi Messages postés 23 Date d'inscription vendredi 31 mars 2017 Statut Membre Dernière intervention 6 janvier 2020
11 déc. 2017 à 00:29
Bonsoir Via
Merci infiniment pour cette macro qui fait le boulot.
Merci également pour ta patience.


Fred
0