cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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.
PatrickB56
Messages postés7Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention25 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
PatrickB56
Messages postés7Date d'inscriptionlundi 20 novembre 2000StatutMembreDernière intervention25 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
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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²
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 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