Regroupement de données

rudymagny

XLDnaute Occasionnel
Bonjour à tous,
Dans le cadre du travail, j'ai un fichier avec des données que je dois valider mais pour me faciliter la vie, je voudrais faire une macro qui fait ceci:

Dans le fichier les colonnes A à F sont des adresses et la colonne Q si ce sont de nouvelles données où des données supprimées.

-Je voudrais que pour A,B,C,Q identiques, que la macro regroupe les lignes où les colonnes D et F sont égales (voir fichier en exemple -->2onglets "avant" et "après")

Je ne sais pas si je suis bien clair

Merci d'avance à vous
 

Pièces jointes

  • Question_XLD.zip
    7 KB · Affichages: 40
Dernière édition:

Saphir

XLDnaute Nouveau
Re : Regroupement de données

Bonjour,
Insère une colonne devant la colonne H, dans cette colonne mets cette formule
=A3&B3&DROITE("00"&C3;3)&DROITE("00"&E3;3)&SI(ESTVIDE(D3);DROITE("00"&F3;3);DROITE("00"&D3;3))
Lance un tri sur cette colonne (en sélectionnant bien la largeur du tableau).
si c'est bien ça que tu veux ?
Il ne reste plus qu'a automatiser, si nécessaire..
Saphir
@+
 

rudymagny

XLDnaute Occasionnel
Re : Regroupement de données

Merci Staple1600 ça marche beaucoup mieux.
Et encore merci à Saphir pour la réponse.

Dans le principe ça marche pas trop mal mais je voudrais aussi essayer de le faire en VBA donc je vais tenter des trucs.

Merci tous les deux
 

rudymagny

XLDnaute Occasionnel
Re : Regroupement de données

En parlant de VBA pour faire ce que je veux, je rencontre le problème suivant avec le code :

Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("B3"), Order2:=xlAscending, Key3:=Range("C3"), Order3:=xlAscending

si je veux rajouter 1 terme, j'ai une erreur.

Ne peut on pas faire plus de 3 termes pour un tri?
 

rudymagny

XLDnaute Occasionnel
Re : Regroupement de données

Bonjour le forum,
J'ai essayé de faire un code comme ceci:

Code:
'Premier Tri pour regrouper les TS et les TC
            L = Sheets(feuille).Range("A65536").End(xlUp).Row
            For i = 3 To L
                For j = i + 1 To L
                    If Cells(i, 4).Value <> "" Or Cells(j, 4).Value <> "" And Cells(i, 1).Value = Cells(j, 1).Value And Cells(i, 2).Value = Cells(j, 2).Value And Cells(i, 3).Value = Cells(j, 3).Value Then
                        If Cells(i, 4).Value = Cells(j, 6).Value And Cells(i, 17).Value = Cells(j, 17).Value Then
                            Rows(j & ":" & j).Select
                            Selection.Cut
                            Rows(i & ":" & i).Select
                            Selection.Insert Shift:=xlUp
                        End If
                    End If
                Next j
            Next i

Mais cela ne marche pas très bien, suis je sur la bonne piste?

je remet le fichier exemple joint pour tester le code

merci d'avance
 

Pièces jointes

  • TEST_VDC_PARIS58_201008_VED_PARIS57B_081008.zip
    7.1 KB · Affichages: 32

rudymagny

XLDnaute Occasionnel
Re : Regroupement de données

Avec ce code, ça se rapproche plus du résultat que j'attend mais c'est pas encore au top, il zappe des lignes mis je ne vois pas pourquoi:

Code:
'Tri pour regrouper les TS et les TC
            L = Sheets(feuille).Range("A65536").End(xlUp).Row
            For i = 3 To L
                For j = i + 1 To L
                    If Cells(i, 1).Value = Cells(j, 1).Value And Cells(i, 2).Value = Cells(j, 2).Value And Cells(i, 3).Value = Cells(j, 3).Value Then
                        If Cells(i, 4).Value <> "" Then
                            Num_TS = Cells(i, 4).Value
                            Num_TC = Cells(j, 6).Value
                        Else
                            Num_TC = Cells(i, 6).Value
                            Num_TS = Cells(j, 4).Value
                        End If
                        
                        If Num_TS = Num_TC And Cells(i, 17).Value = Cells(j, 17).Value Then
                            Rows(j & ":" & j).Select
                            Selection.Cut
                            Rows(i & ":" & i).Select
                            Selection.Insert Shift:=xlDown
                        End If
                    End If
                Next j
            Next i

et en pas à pas détaillé, je comprend pas ce qu'il fait dans certains cas.

merci d'avance

ps: en pièce jointe, je met un fichier de test qui contient moins de données pour tester plus rapidement.
 

Pièces jointes

  • Test_PARIS58_PARIS57.zip
    1.2 KB · Affichages: 33

Discussions similaires

Réponses
37
Affichages
2 K

Statistiques des forums

Discussions
312 836
Messages
2 092 652
Membres
105 479
dernier inscrit
chaussadas.renaud