Comment regrouper lignes inversées AB et BA ?

Bonjour,

J'aimerais compacter mon tableau en faisant la somme des champs "Marchandises" et "Passagers" pour chaque couple de lignes doubles mais inversées. Tout en gardant les champs "Année" et "Type", dans le nouveau tableau, qui contiendrait donc 9 lignes au lieu de 18. Une condition supplémentaire, pour éviter que l'agrégation se fasse dans un sens aléatoire, serait de toujours placer, dans le nouveau tableau, CITY1 et CITY2 par ordre alphabétique (ex : toujours avoir Amsterdam-Rotterdam et non Rotterdam-Amsterdam d'une année à une autre et d'un type de transport à un autre). En fichier joint, le tableau d'origine à gauche et le tableau espéré à droite comme exemple. Mon tableau complet fait 700 000 lignes ... Un grand merci par avance ! cdt

16classeur1.xlsx (10.34 Ko)

Bonjour,

à tester sur une grande quantité de données

Sub rangement()
Dim i As Double
Sheets(1).Select
tbl = Range("A1").CurrentRegion.Value
For i = 2 To UBound(tbl)
    If tbl(i, 2) > tbl(i, 3) Then
        tmp = tbl(i, 2)
        tbl(i, 2) = tbl(i, 3)
        tbl(i, 3) = tmp
    End If
Next
Range("H1").Resize(UBound(tbl), UBound(tbl, 2)) = tbl
Sheets(2).Select
ActiveSheet.PivotTables(1).PivotCache.Refresh
End Sub

je fais d'abord le tri CITY1/CITY2 et ensuite la somme via un TCD

7classeur1.xlsm (21.88 Ko)

Merci ! En revanche, j'aurais besoin que le total par année n'apparaisse pas en ligne supplémentaire (pas besoin), et que l'année reste incluse à gauche dans chaque ligne. Au final il me faudra trier la colonne "année" donc s'il y a des blancs cela ne fonctionnera pas.

ok, je te le fais dès que possible

6classeur1.xlsm (21.77 Ko)

Merci beaucoup, c'est génial ! Bonne journée

Rechercher des sujets similaires à "comment regrouper lignes inversees"