kkamadou
XLDnaute Junior
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim derlig&
Application.ScreenUpdating = False
Application.EnableEvents = False
If FilterMode Then ShowAllData 'si la feuille est filtrée
derlig = Cells(Rows.Count, 1).End(xlUp).Row
If derlig < 4 Then Exit Sub 'sécurité
With Rows("4:" & derlig)
.Sort .Columns(4), Header:=xlNo 'tri sur les classes
.Columns(27) = "=IFERROR(RANK(Z4,OFFSET(Z$4,MATCH(D4,D,0)-4,,COUNTIF(D,D4))),"""")"
.Columns(27) = .Columns(27).Value 'supprime les formules
.Sort .Columns(4), xlAscending, Header:=xlNo 'tri par classe
.Sort .Columns(2), xlAscending, Header:=xlNo 'tri alphabétique sur les noms des élèves
End With
Application.EnableEvents = True
End Sub
Salut le forum
Ce code ci-dessus marche bien lorsqu' on change le valeur d'une cellule, mais ce qui pose problème
est que les données sont copiées à partir d'une autre feuille pour être copiées dans la feuille INDEX
du coup ce code ne s’exécute pas. je ne sais pas comment faire pour que ça marche.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim derlig&
Application.ScreenUpdating = False
Application.EnableEvents = False
If FilterMode Then ShowAllData 'si la feuille est filtrée
derlig = Cells(Rows.Count, 1).End(xlUp).Row
If derlig < 4 Then Exit Sub 'sécurité
With Rows("4:" & derlig)
.Sort .Columns(4), Header:=xlNo 'tri sur les classes
.Columns(27) = "=IFERROR(RANK(Z4,OFFSET(Z$4,MATCH(D4,D,0)-4,,COUNTIF(D,D4))),"""")"
.Columns(27) = .Columns(27).Value 'supprime les formules
.Sort .Columns(4), xlAscending, Header:=xlNo 'tri par classe
.Sort .Columns(2), xlAscending, Header:=xlNo 'tri alphabétique sur les noms des élèves
End With
Application.EnableEvents = True
End Sub
Salut le forum
Ce code ci-dessus marche bien lorsqu' on change le valeur d'une cellule, mais ce qui pose problème
est que les données sont copiées à partir d'une autre feuille pour être copiées dans la feuille INDEX
du coup ce code ne s’exécute pas. je ne sais pas comment faire pour que ça marche.