Concatener plusieurs cellules

Résolu
PatrickB56 Messages postés 7 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 25 janvier 2008 - 12 oct. 2007 à 19:01
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 15 oct. 2007 à 10:58
Bonjour,


Débutant en Code VBA si vous pouviez m'aider pour concatener de 1 à plusieurs cellules en fonction du contenu d'une autre cellule, je m'explique 

J'ai l'excel suivant

A         B         C        
Jean    Martin   marié    
Jean    Martin   4 enfants
Jean    Martin   pauvre homme
paul    Jean      marié
paul     Jean     5 enfants
etc..

et je voudrais obtenir

A         B         C        
Jean    Martin   marié , 4 enfants , pauvre homme    
Paul   Jean       marié , 4 enfants;            

j'ai fait quelques tentatives avec des formale, exact, si, sans grand résultat
Si quelqu'un peut...

Merci d'avance

6 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
13 oct. 2007 à 00:07
Je ne vois pas vraiment de formule qui pourrait t'aider... Par contre, avec une macro, ça devrait être assez simple...

Tu pourrais commencer par trier ta grille pour être certain que chaque valeur identique (nom et prénom) se suivent.

Ensuite une simple boucle (For...Next) qui vérifie (If) si le nom et le prénom suivant sont identiques à ceux en cours et tu concatènes les valeurs en colonne C avec «&»

Vérifie ces mots en gras dans l'aide et tu devrais pouvoir y arriver avec les exemples.

En fait, je vois 2 options,
tu lis les données et affiches le résultat ailleurs
ou tu lis les données, les concatènes au besoin et supprimes les lignes devenues superflues. La boucle dans ce cas devra commencer par le bas.

MPi²
3
PatrickB56 Messages postés 7 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 25 janvier 2008
13 oct. 2007 à 10:03
Bonjour MPi,

Tout d'abord merci pour ton aide rapide,  j'avais trié les colonnes A et B
puis j'ai essayé avec des fourmules comme "exact" pour voir si la cellule active
est égale à la précédente.

Les macros, je débute,c'est ce que tu pourrais me l'expliquer plus en détail, si tu as le temps

en te remerciant
0
PatrickB56 Messages postés 7 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 25 janvier 2008
13 oct. 2007 à 10:03
Bonjour MPi,

Tout d'abord merci pour ton aide rapide,  j'avais trié les colonnes A et B
puis j'ai essayé avec des fourmules comme "exact" pour voir si la cellule active
est égale à la précédente.

Les macros, je débute,c'est ce que tu pourrais me l'expliquer plus en détail, si tu as le temps

en te remerciant
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
13 oct. 2007 à 13:44
Méthode qui élimine les lignes superflues

Sub Concatener()
    Dim I As Long
    Dim Fin As Long
   
    'déterminer la dernière ligne de la colonne A
    Fin = Cells(Rows.Count, "A").End(xlUp).Row
   
    For I = Fin To 2 Step -1  'boucle du bas vers le haut jusqu'à ligne 2
        If Range("A" & I) = Range("A" & I - 1) And _
           Range("B" & I) = Range("B" & I - 1) Then
           
           ' si An et Bn sont identiques à An-1 et Bn-1, on concatène Cn et Cn-1
'           Range("C" & I) = Range("C" & I ) & ", " & Range("C" & I - 1)
           'Si tu veux conserver l'ordre en C, il faudrait inverser la fin
           Range("C" & I) = Range("C" & I - 1) & ", " & Range("C" & I)
           'éliminer la ligne précédente déjà concaténée
           Rows(I - 1).Delete
        End If
    Next
   
End Sub

MPi²
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PatrickB56 Messages postés 7 Date d'inscription lundi 20 novembre 2000 Statut Membre Dernière intervention 25 janvier 2008
15 oct. 2007 à 09:44
Bonjour,

Superbe, parfait, merci beaucoup pour ton aide
aurais tu qqe conseils en matière de VBA, pour apprendre à faire
ces petites manips

Merci Beaucoup 

Cdlt 
Patrick  
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
15 oct. 2007 à 10:58
Lire des bouquins, lire des forums de discussions comme ici. Imaginer des situations et faire des tests pour que ça fonctionne.

Il n'y a pas de solution miracle. À force d'en faire, tu ne peux que t'améliorer.
Ce que j'aime des forums, c'est que tu peux apprendre des techniques auxquelles tu n'aurais pas pensé... Le monde est rempli de gens brillants

MPi²
0
Rejoignez-nous