Sub MAJ(Target As Range)
Dim archive, w As Worksheet, tablo, v1, v2, v3, t As Range, col%, i&
Static flag As Boolean
Set Target = Intersect(Target, Target.Parent.[A:V], Target.Parent.UsedRange)
If flag Or Target Is Nothing Then Exit Sub
archive = Array("ARCHIVAGE_RADO", "ARCHIVAGE_OMEGA", "ARCHIVAGE_GLACE", "ARCHIVAGE_PIERRE", "ARCHIVAGE_CERAMIQUE")
Application.ScreenUpdating = False
flag = True
For Each w In Worksheets
If IsError(Application.Match(w.Name, archive, 0)) Then
w.Activate 'une macro en a besoin...
tablo = Range("A1:C1", [A65536].End(xlUp))
For Each t In Target
col = t.Column
v1 = t.Offset(, 1 - col)
v2 = t.Offset(, 2 - col)
v3 = t.Offset(, 3 - col)
For i = 1 To UBound(tablo)
If tablo(i, 1) = v1 And tablo(i, 2) = v2 And _
tablo(i, 3) = v3 Then Cells(i, col) = t
Next
Next
End If
Next
flag = False
Target.Parent.Activate
End Sub