Concatener le contenu de plusieurs cellules Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
S
SpicyKant
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 11 mars 2014
Version d'Excel : 2010

Message par SpicyKant » 11 mars 2014, 18:32

Bonsoir,

Je suis en train de consolider une base de données de contacts.

J'ai récupéré un historique des actions réalisées sur chaque contact et j'aimerais rattacher chaque action à un seul et même contact dans une cellule commentaire.
Le problème est qu'il y existe entre 1 à x actions par contact.

J'ai tenté d'allier un rechercherv et un Concatener, mais je n'y parviens pas...

Pourriez-vous m'éclairer svp ?

Je vous joins un exemple.
Exemple BDD à réconcilier.xlsx
Réconciliation Commentaires Contacts
(8.93 Kio) Téléchargé 31 fois
Dans mon fichier source, j'ai 2500 actions à réaffecter à chaque contact.

Merci d'avance pour votre aide
h
h2so4
Passionné d'Excel
Passionné d'Excel
Messages : 8'848
Appréciations reçues : 339
Inscrit le : 16 juin 2013
Version d'Excel : 365 UK Windows 10

Message par h2so4 » 11 mars 2014, 19:44

Bonsoir,

une solution via une macro.
Sub concatcom()
' on travaille sur la feuille exemple
    With Worksheets("exemple")
    ' on parcourt toutes les lignes à partir de la ligne 2
        i = 2
        While .Cells(i, 1) <> "" ' tant qu'il y a une valeur en colonne 1
            found = True
            While found ' tant qu'on trouve des lignes avec le même contact
                dl = .Range("a" & Rows.Count).End(xlUp).Row ' dl dernière ligne
                If dl > i Then ' a-t-on passé la fin
                 ' on cherche une autre ligne avec le même contact
                    Set re = .Range("A" & i + 1 & ":a" & dl).Find(.Cells(i, 1), lookat:=xlWhole)
                    If Not re Is Nothing Then ' si ligne trouvée
                        .Cells(i, 2) = .Cells(i, 2) & vbNewLine & .Cells(re.Row, 2) ' on concatene l'info de la colonne 2
                        re.EntireRow.Delete ' on supprime la ligne trouvée
                    Else
                        found = False ' on n'a pas trouvé de ligne avec le même contact
                    End If
                Else
                    found = False ' on a passé la fin
                End If
            Wend
            i = i + 1 ' on passe à la ligne suivante
        Wend
    End With
End Sub
S
SpicyKant
Nouveau venu
Nouveau venu
Messages : 2
Inscrit le : 11 mars 2014
Version d'Excel : 2010

Message par SpicyKant » 12 mars 2014, 09:48

Bonjour,

Merci beaucoup pour votre macro ! Tout fonctionne parfaitement.

Très astucieux en tout cas.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message