Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Not LCase(Sh.Name) Like "item n°*" Then Exit Sub
Dim F As Worksheet, c As Range, n
Set F = Sheets("Matrice")
Set c = F.[2:2].Find(Sh.Name, , xlValues, xlWhole)
Application.ScreenUpdating = False
If c Is Nothing Then Set c = F.Cells(2, F.Columns.Count).End(xlToLeft)(1, 2): c = Sh.Name
With Sh.[GL64]
For n = 1 To 50
.Cells(1, n).Copy c(1 + n)
Next
End With
End Sub
Private Sub Workbook_SheetDeActivate(ByVal Sh As Object)
Workbook_SheetChange Sh, Sh.[A1] 'lance la macro
End Sub