Bon, j'avais pas touché du VBA depuis des lustres, et j'ai un problème. Mineur, mais bon, ça me dérange. J'avais d'abord opté pour une automation en faisant ceci (entre autres, mais c'est le principe) :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Range("D25:H30").Select
ActiveWorkbook.Worksheets("Input").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Input").AutoFilter.Sort.SortFields.Add Key:=Range( _
"E26:E30"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Input").AutoFilter.Sort.SortFields.Add Key:=Range( _
"F26:F30"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Input").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Le résultat en tant que tel convient, ça fait le travail, sauf que hmm... A chaque modification, j'ai donc droit à un retour sur les plages concernées. Très peu pratique ce faisant. Je me suis donc dis que j'allais passer ça en Calculate. Sauf que j'ai beau faire F9, rien, nada. Le tri ne se fait plus. Je comprends pas bien où je me suis planté. Bon cela étant s'il y a moyen que ça reste automatique mais en tâche de fond, sans avoir à m'importuner à revenir aux plages triées à chaque modification, ce serait aussi bien.
|