C'est parfaitement ça. Merci t'es un monstreRe-,
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
Sub Tri_H()
Dim Plg As Range
Set Plg = Range("A5").CurrentRegion.Offset(, 11).Resize(, 16)
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SortFields.Clear
.SortFields.Add(Plg.Rows(1), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, 255, 0)
.SetRange Plg
.Header = xlYes
.Orientation = xlLeftToRight
.Apply
End With
End Sub
Bonjour,
Avec ce code (obtenu pratiquement avec l'enregistreur de macros)
J'ai supposé la dernière colonne en AA, donc plage de L à AA
Bonne fin d'apmVB:Sub Tri_H() Dim Plg As Range Set Plg = Range("A5").CurrentRegion.Offset(, 11).Resize(, 16) With ActiveWorkbook.Worksheets("Feuil1").Sort .SortFields.Clear .SortFields.Add(Plg.Rows(1), _ xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, 255, 0) .SetRange Plg .Header = xlYes .Orientation = xlLeftToRight .Apply End With End Sub
Sub Tri_H()
Dim Plg As Range
Dim DerCol As Long
DerCol = Worksheets("Feuil1").Cells(5, Columns.Count).End(xlToLeft).Column
Set Plg = Range("A5").CurrentRegion.Offset(, 11).Resize(, DerCol - 11)
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SortFields.Clear
.SortFields.Add(Plg.Rows(1), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, 255, 0)
.SetRange Plg
.Header = xlYes
.Orientation = xlLeftToRight
.Apply
End With
End Sub
Bonjour CousinHub,Bonjour,
Pour la dernière colonne, calcul rajouté - Toujours sur la base de la première colonne à trier -> colonne "L" (soit 11ème colonne)
Pour la couleur de tri, voir avec une voyante...
Ou donner un tout petit peu plus de précisions (méthode de choix)
Bon dimancheVB:Sub Tri_H() Dim Plg As Range Dim DerCol As Long DerCol = Worksheets("Feuil1").Cells(5, Columns.Count).End(xlToLeft).Column Set Plg = Range("A5").CurrentRegion.Offset(, 11).Resize(, DerCol - 11) With ActiveWorkbook.Worksheets("Feuil1").Sort .SortFields.Clear .SortFields.Add(Plg.Rows(1), _ xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, 255, 0) .SetRange Plg .Header = xlYes .Orientation = xlLeftToRight .Apply End With End Sub
.SortOnValue.Color = RGB(255, 255, 0)
.SortOnValue.Color = Range("L5").Interior.Color
Bonjour,
La couleur de tri est fixée ici :
VB:.SortOnValue.Color = RGB(255, 255, 0)
Qu'on pourrait remplacer par ceci, en prenant comme couleur de tri la couleur de la cellule L5
Code:.SortOnValue.Color = Range("L5").Interior.Color
Si ce n'est toujours pas ça, je ne vois pas...
Bonne journée
Sub Tri_H()
Dim Plg As Range
Dim DerCol As Long
DerCol = Worksheets("Feuil1").Cells(5, Columns.Count).End(xlToLeft).Column
Set Plg = Range("A5").CurrentRegion.Offset(, 11).Resize(, DerCol - 11)
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SortFields.Clear
.SortFields.Add(Plg.Rows(1), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = Range("L5").Interior.Color
.SetRange Plg
.Header = xlYes
.Orientation = xlLeftToRight
.Apply
End With
End Sub
Sub Tri_H()
Dim Plg As Range
Dim DerCol As Long
With Worksheets("Feuil1")
DerCol = .Cells(5, Columns.Count).End(xlToLeft).Column
Set Plg = .Range("A5").CurrentRegion.Offset(, 11).Resize(, DerCol - 11)
.Sort.SortFields.Clear
.Sort.SortFields.Add(Plg.Rows(1), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = .Range("L5").Interior.Color
.Sort.SetRange Plg
.Sort.Header = xlYes
.Sort.Orientation = xlLeftToRight
.Sort.Apply
End With
End Sub
Re-,
Comment tu déroules le code?
En mode pas-à-pas, ou en auto?
Si en mode pas-à-pas, il faut bien aller jusqu'à ".Apply"
Sinon, est-ce que l'onglet se nomme bien "Feuil1"?
Et est-ce que cet onglet est bien activé?
Essaie en remplaçant ainsi :
VB:Sub Tri_H() Dim Plg As Range Dim DerCol As Long With Worksheets("Feuil1") DerCol = .Cells(5, Columns.Count).End(xlToLeft).Column Set Plg = .Range("A5").CurrentRegion.Offset(, 11).Resize(, DerCol - 11) .Sort.SortFields.Clear .Sort.SortFields.Add(Plg.Rows(1), _ xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = .Range("L5").Interior.Color .Sort.SetRange Plg .Sort.Header = xlYes .Sort.Orientation = xlLeftToRight .Sort.Apply End With End Sub
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("L5").Resize(DerLig - 4, DerCol - 11)
.Sort.SortFields.Clear
.Sort.SortFields.Add(Plg.Rows(1), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = .Range("L5").Interior.Color
.Sort.SetRange Plg
.Sort.Header = xlYes
.Sort.Orientation = xlLeftToRight
.Sort.Apply
End With
End Sub
Merci à toiRe-,
On va y arriver...
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 [/QUOTE] [QUOTE="Cousinhub, post: 20633242, member: 13730"] Set Plg = .Range("L5").Resize(DerLig - 4, DerCol - 11) .Sort.SortFields.Clear .Sort.SortFields.Add(Plg.Rows(1), _ xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = .Range("L5").Interior.Color .Sort.SetRange Plg .Sort.Header = xlYes .Sort.Orientation = xlLeftToRight .Sort.Apply End With End Sub