Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Fusion de lignes conditionnelle - macro

  • Initiateur de la discussion Initiateur de la discussion GuillaumeM
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

GuillaumeM

Guest
Bonjour,
Je me permets d'ouvrir une nouvelle discussion, même si ma demande me semble faire suite à ceci:
https://www.excel-downloads.com/threads/fusion-de-lignes.190557/

Il s'agit de données d'état civil compilées pour une recherche historique. Je souhaiterais fusionner plusieurs lignes d'un tableau excel, afin d'obtenir une seule ligne pour un même individu (même identifiant et même nom).

Dans certains cas, assez rares, les données d'état civil divergent selon les sources. Dans ces cas et seulement dans ces cas, je souhaite
-soit conserver les lignes correspondantes (je ferai mon choix manuellement);
-soit conserver arbitrairement l'information contenue dans la première ligne.

Lorsque, pour un même individu, il y a plusieurs lignes avec des données identiques, je souhaite regrouper l'information dans une même ligne;

Lorsque, pour un même individu, il y a des trous dans une ligne, je souhaite les remplacer par l'information contenue dans les autres lignes (même colonne).

Je joins à ce message un exemple.

Je précise que je suis débutant avec excel et ne sais pas manipuler les macro. J'ai ainsi tenté - sans succès - d'utiliser la macro proposée dans la discussion référencée ci-dessus. Je ne sais pas comment l'adapter à mon tableau, i.e. la modifier pour mes besoins.

Merci pour votre aide éventuelle,

cordialement,

Guillaume
 

Pièces jointes

Re : Fusion de lignes conditionnelle - macro

Bonjour Pierrejean,
Un grand merci pour ta réponse rapide et efficace. Ta macro me semble très bien faire le job!
Une question: si je souhaite adapter la macro à des données structurées différemment (avec des colonnes différentes, renseignant par ex. des lieux d'activité, mais toujours avec le nom et l'identifiant de chaque individu), faut-il modifier cette macro? Si c'est le cas, comme je le suppose, quels sont les paramètres à changer dans le code ci-dessous?
Merci par avance et bien à toi,
Guillaume


Sub test()
Set dico = CreateObject("Scripting.dictionary")
tablo = Range("A2:L" & Range("A" & Rows.Count).End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
x = tablo(n, 1) & "|" & tablo(n, 2)
dico(x) = x
Next
a = dico.keys
ReDim tabres(1 To 12, 0)
For m = LBound(a) To UBound(a)
tabres(1, UBound(tabres, 2)) = Split(a(m), "|")(0)
tabres(2, UBound(tabres, 2)) = Split(a(m), "|")(1)
For n = LBound(tablo, 1) To UBound(tablo, 1)
If tablo(n, 1) & "|" & tablo(n, 2) = a(m) Then
For p = 3 To 12
If tabres(p, UBound(tabres, 2)) = "" Then tabres(p, UBound(tabres, 2)) = tablo(n, p)
Next
End If
Next
ReDim Preserve tabres(1 To 12, UBound(tabres, 2) + 1)
Next
Range("N2:X" & Rows.Count).ClearContents
Range("N2").Resize(UBound(tabres, 2), 12) = Application.Transpose(tabres)
End Sub
 
Re : Fusion de lignes conditionnelle - macro

Pour modifier la macro il est essentiel de la comprendre

Dans le fichier joint , je l'ai commentée

En cas de difficulté n’hésite pas à présenter ton nouveau problème
 

Pièces jointes

Re : Fusion de lignes conditionnelle - macro

Re-bonjour Pierrejean,
Merci beaucoup pour ces explications. Je vais tester et reviendrai vers toi en cas de souci.
Bien à toi,
Guillaume
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
251
Réponses
18
Affichages
557
Réponses
78
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…