XL 2019 Trier et regroupement de données

netparty

XLDnaute Occasionnel
Bonjour à tous

Je sollicite votre car je ne suis pas un expert.

Je dispose d'un fichier qui me sert pour importer des données extraite depuis une autre plateforme. Une fois mais données insérées j'aimerais pouvoir les trier et les regrouper suivant une valeur se trouvant dans la colonne J.
Une fois le tri effectué, j'aimerai qu'il y ai une ligne vide qui sépare chaque groupe de tri.

Je joint un fichier se sera plus clair, l'onglet "Fichier Brut" représente se que j'ai importé et l'onglet "Résultat souhaité" pour se que je souhaite obtenir.

Merci d'avance à vous tous

Passer une bonne journée
 

Pièces jointes

  • Fichier test.xlsx
    25.8 KB · Affichages: 26

job75

XLDnaute Barbatruc
Bonjour netparty,

Voyez le fichier joint et cette macro dans le code de la feuille "Résultat" :
VB:
Private Sub Worksheet_Activate()
Dim lig&
Application.ScreenUpdating = False
Cells.Delete 'RAZ
Sheets("Fichier Brut").[C18].CurrentRegion.EntireRow.Copy [A1] 'à adapter
With [C1].CurrentRegion.EntireRow
    .Sort .Columns(10), xlAscending, Header:=xlYes 'tri sur la colonne J
    For lig = .Rows.Count To 2 Step -1
        If .Cells(lig, 10) <> Cells(lig - 1, 10) Then
            .Rows(lig).Resize(3).Insert 'insère 3 lignes
            With .Rows(lig + 1)
                .Cells(1, 3) = .Cells(3, 10)
                .Cells(1, 3).Font.Bold = True 'gras
                .Borders(xlEdgeTop).Weight = xlThin
                .Borders(xlEdgeBottom).Weight = xlMedium
            End With
        End If
    Next
    .Rows(1).RowHeight = 24.75 'hauteur
    .Rows(1).Interior.ColorIndex = 15 'gris
    .Rows(1).Font.Bold = True 'gras
    .Columns.AutoFit 'ajustement largeurs
End With
With UsedRange: End With 'actualise les barres de défilement
End Sub
Elle se déclenche quand on active la feuille.

A+
 

Pièces jointes

  • Fichier test(1).xlsm
    36.1 KB · Affichages: 10

netparty

XLDnaute Occasionnel
Bonjour job75

Déjà un tout grand merci pour ton code, c'est super.

J'ai quelque question :
Y-a-t-il une limitation dans le nombre de colonnes
Est-il possible de transformer ton code pour l'intégrer dans une macro ?
Est-il possible que les résultat commence sur la ligne 5 ? car je ne vois pas ou je dois modifier cela

Merci et bonne journée
 

job75

XLDnaute Barbatruc
Pour la 1ère question lisez la macro : les lignes entières sont copiées.

Pour le reste voyez ce fichier (2) et la macro du bouton :
VB:
Sub Resultat()
Dim lig&
Application.ScreenUpdating = False
With Sheets("Résultat")
    .Rows("5:" & .Rows.Count).Delete 'RAZ
    Sheets("Fichier Brut").[C18].CurrentRegion.EntireRow.Copy .[A5] 'à adapter
    With .[C5].CurrentRegion.EntireRow
        .Sort .Columns(10), xlAscending, Header:=xlYes 'tri sur la colonne J
        For lig = .Rows.Count To 2 Step -1
            If .Cells(lig, 10) <> .Cells(lig - 1, 10) Then
                .Rows(lig).Resize(3).Insert 'insère 3 lignes
                With .Rows(lig + 1)
                    .Cells(1, 3) = .Cells(3, 10)
                    .Cells(1, 3).Font.Bold = True 'gras
                    .Borders(xlEdgeTop).Weight = xlThin
                    .Borders(xlEdgeBottom).Weight = xlMedium
                End With
            End If
        Next
        .Rows(1).RowHeight = 24.75 'hauteur
        .Rows(1).Interior.ColorIndex = 15 'gris
        .Rows(1).Font.Bold = True 'gras
    End With
    .Columns.AutoFit 'ajustement largeurs
    With .UsedRange: End With 'actualise les barres de défilement
End With
End Sub
 

Pièces jointes

  • Fichier test(2).xlsm
    38.4 KB · Affichages: 19
Dernière édition:

Discussions similaires

Réponses
37
Affichages
2 K

Statistiques des forums

Discussions
315 123
Messages
2 116 458
Membres
112 748
dernier inscrit
Pboiusquet