Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim n As Integer, w As Worksheet
n = Val(Sh.Name) - 1
If n < 1 Then Exit Sub
Sh.[B3:J200].Sort Sh.[B3], xlAscending, Header:=xlNo
For Each w In Worksheets
If Val(w.Name) = n Then
w.[B3:J200].Sort w.[B3], xlAscending, Header:=xlNo
w.[B3:E200].Copy Sh.[B3]
w.[G3:G200].Resize(, n).Copy Sh.[G3]
w.[2:2].Copy Sh.[A2] 'titres
Exit For
End If
Next
Sh.[B3:J200].Sort Sh.[F3].Offset(, n), xlDescending, Header:=xlNo
End Sub