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

Réponses
3
Affichages
550

Statistiques des forums

Discussions
311 740
Messages
2 082 041
Membres
101 879
dernier inscrit
Arthur M