Autres Excel 2007: Rang avec une macro dans une feuille de calcul

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:D,0)-4,,COUNTIF(D: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.
 

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:D,0)-4,,COUNTIF(D: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.
 

Pièces jointes

  • note eleve rang.xlsm
    27.9 KB · Affichages: 17

Discussions similaires

Statistiques des forums

Discussions
314 647
Messages
2 111 533
Membres
111 191
dernier inscrit
Assjmka