Concaténer sans doubon selon une colonne

Bonjour chers membres du forum !

Je suis très souvent amené à rassembler des données selon une colonne.

Je précise également que je ne souhaite pas utiliser de tableau croisé dynamique. Je préfèrerai une solution VBA

Je souhaiterai écrire une Sub générique qui fasse le traitement que j'ai décrit dans le fichier joint sur n'importe quel range.

L'idée est de sélectionner une colonne qui contient des doublons et de fusionner les autres colonnes (sans doublons et en séparant les valeurs différentes par un séparateur à définir)

Comme donnée en entrée de ma Sub, j'envisageais:

  • un Range (le range sur lequel faire le traitement)
  • Un integer (le numéro de colonne sur lequel je souhaite rassembler les données) dans l'exemple ce serait la colonne Auteur
  • Worksheet de destination (Ou encore mieux, crée le résultat dans une nouvelle Worksheet en fin de liste)
  • Sep as String (caractère de séparation souvent une virgule)

Je précise que je n'ai pas trouvé de solution en cherchant sur les forums (sans doute car je n'ai pas formulé mon problème comme les personnes précédentes)

Mes connaissances en VBA sont insuffisantes pour générer un code qui soit générique et qui ne comporte pas trop de boucles (j'ai beaucoup de data à brasser).

Merci pour votre aide !

Je vous ai beaucoup lu sans avoir eu besoin de poser de question... jusqu'à ce jour !!

Bonsoir Marco294, le forum,

Un essai......

  • une macro (CreateCustomerList) récupère la liste des auteurs sans doublons
  • une fonction personnalisée (Recherches_Multiples) récupère les infos

(Elles ne sont pas de moi, , merci aux auteurs !)

  • elles sont appelées dans l'évènement change de la feuille.

Cordialement,

Bonjour

regarde si ceci correspond à ta demande

il y a tri de la feuille 1 avant la mise à jour de la feuille 2

ce n'est pas obligatoire

d'autre part les datas de la feuille 1 ne sont pas supprimées

ça peut se faire mais ce n'est pas non plus obligatoire

a tester mais normalement un livre qui existe déjà sur la feuille 2 ne sera pas ajouter une seconde fois

A plus sur le forum

9catalogue.xlsm (19.08 Ko)

Bonsoir,

Une 3ème proposition (!) à tester, en VBA

Procédure générique avec 3 paramètres :

  • la plage à traiter
  • la colonne de regroupement
  • le séparateur
Public Sub Concat(poRange As Range, piColonne As Integer, psSeparateur As String)

2 exemples d'appel dans le fichier joint

Bouben

Salut le Forum,

et une autre proposition

Bonne nuit

Bonjour !

Impressionnant ce forum ne dort jamais..!

Je regarde vos solutions et je reviens vers vous très vite..

J'ai oublié de préciser que les doublons ne sont pas contigus dans mon fichier.

Merci !

Bonsoir à tous,

D'abord, Merci à tous pour les macros. Toutes fonctionnent et je suis sûr que ca va débloquer pas mal de lecteurs, en plus de moi !

J'ai passé pas mal de temps à essayer de comprendre votre code..

La propo de Bouben est la plus proche de ce dont j'ai besoin (avec appel de la Sub par arguments).

Par contre, elle n'enlève pas les doublons dans les lignes

Dans mon exemple, à la colonne éditeur, pour la ligne Victor Hugo, on a D,D. J'attends D

Les scripts de Papyg et m3ellem1 font ce traitement.

Par contre, je n'arrive pas simplement à enlever les doublons dans la macro Bouben.

'concatenation des autres données
        For iCol = 1 To poRange.Columns.Count
            If iCol <> piColonne Then
                If oSh2.Cells(iEcr, iCol).Value = "" Then
                    oSh2.Cells(iEcr, iCol).Value = poRange(iLig, iCol).Value
                Else
                    oSh2.Cells(iEcr, iCol).Value = oSh2.Cells(iEcr, iCol).Value & psSeparateur & poRange(iLig, iCol).Value
                End If
            End If
        Next iCol

Faudrait il créer un dictionnaire au moment où on concatene ces données ? 'code ci dessus

Ou reboucler pour enlever les doublons à la fin ?

Merci,

Marc.

Bonjour,

Ci-joint une nouvelle version à tester, sans doublon.

Principe : si la valeur est déjà présente, on ne l'ajoute pas.

Bouben

Fonctionne comme un charme !

Tres adaptable grace aux argument dans la Sub...

Merci !!

Je suis en train de décortiquer le code pour bien comprendre

Watch and learn, comme on dit !

Prenez soin de vous,

Merci

Rechercher des sujets similaires à "concatener doubon colonne"