Microsoft 365 VBA - Tri par couleur de cellule

AD95

XLDnaute Junior
Bonjour à tous,

J'ai besoin d'un code VBA qui tri les cellules par couleur à partir de la colonne L5 jusqu'à la dernière colonne

Exemple : à partir de la colonne L5
1709226319455.png



Exemple de résultat attendu :


1709226360734.png



Merci d'avance pour votre aide !!!!!!!!!
 

Pièces jointes

  • Trier par couleur.xlsm
    18 KB · Affichages: 10
Solution
Re-,
Allez, vite fait
VB:
Sub Tri_H()
Dim Plg As Range
Dim DerCol As Long, DerLig As Long
With Worksheets("Feuil1")
    DerCol = .Cells(5, Columns.Count).End(xlToLeft).Column
    DerLig = .Cells.SpecialCells(xlCellTypeLastCell).Row
    Set Plg = .Range("L1").Resize(DerLig, DerCol - 11)
    .Sort.SortFields.Clear
    .Sort.SortFields.Add(Plg.Rows(5), _
        xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = .Range("L5").Interior.Color
    .Sort.SetRange Plg
    .Sort.Header = xlYes
    .Sort.Orientation = xlLeftToRight
    .Sort.Apply
End With
End Sub
C'est parfaitement ça. Merci t'es un monstre 💪

J'ai bien le résultat attendu exemple de test

1709548602323.png


Merci beaucoup et bonne journée à toi...

Cousinhub

XLDnaute Barbatruc
Inactif
Re-,
Allez, vite fait
VB:
Sub Tri_H()
Dim Plg As Range
Dim DerCol As Long, DerLig As Long
With Worksheets("Feuil1")
    DerCol = .Cells(5, Columns.Count).End(xlToLeft).Column
    DerLig = .Cells.SpecialCells(xlCellTypeLastCell).Row
    Set Plg = .Range("L1").Resize(DerLig, DerCol - 11)
    .Sort.SortFields.Clear
    .Sort.SortFields.Add(Plg.Rows(5), _
        xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = .Range("L5").Interior.Color
    .Sort.SetRange Plg
    .Sort.Header = xlYes
    .Sort.Orientation = xlLeftToRight
    .Sort.Apply
End With
End Sub
 

AD95

XLDnaute Junior
Re-,
Allez, vite fait
VB:
Sub Tri_H()
Dim Plg As Range
Dim DerCol As Long, DerLig As Long
With Worksheets("Feuil1")
    DerCol = .Cells(5, Columns.Count).End(xlToLeft).Column
    DerLig = .Cells.SpecialCells(xlCellTypeLastCell).Row
    Set Plg = .Range("L1").Resize(DerLig, DerCol - 11)
    .Sort.SortFields.Clear
    .Sort.SortFields.Add(Plg.Rows(5), _
        xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = .Range("L5").Interior.Color
    .Sort.SetRange Plg
    .Sort.Header = xlYes
    .Sort.Orientation = xlLeftToRight
    .Sort.Apply
End With
End Sub
C'est parfaitement ça. Merci t'es un monstre 💪

J'ai bien le résultat attendu exemple de test

1709548602323.png


Merci beaucoup et bonne journée à toi !!!!!!!!!!!!!!!!!
 

Discussions similaires

Réponses
7
Affichages
226
  • Question
Microsoft 365 Tableau
Réponses
24
Affichages
667

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette