Re-,
effectivement, ce serait mieux, mais le "truc" ne faisait pas partie de la question, il me semble.......
remplace le code du module 1 par celui-ci, ainsi, si tu supprimes, ou ajoutes des lignes, le tri est fait dès le début, et ton onglet "Liste élèves" est trié...
Sub classes()
With Sheets("Liste élèves")
derlig = .[G65000].End(xlUp).Row
.Range("G2:U" & derlig).Name = "base"
.Range("A2:AB" & derlig).Sort Key1:=.Range("G3"), Order1:=xlAscending, _
Key2:=.Range("H3"), Order2:=xlAscending, Header:=xlGuess
End With
classe = Array("TPS", "PS", "MS", "GS", "CP", "CE1", "CE2", "CM1", "CM2")
For Each cl In classe
With Sheets(cl)
.Range("H3") = cl
.Range("G3").FormulaR1C1 = _
"=RIGHT('Liste élèves'!RC[14],LEN('Liste élèves'!RC[14])-2)=R3C8"
Sheets("Liste élèves").Range("base").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=.Range( _
"G2:G3"), CopyToRange:=.Range("A2:E2"), Unique:=False
.Range("G3:H3").ClearContents
End With
Next cl
End Sub
Bonne soirée