Private Sub Worksheet_Activate()
Dim x As Variant
x = [Modif]
If Not IsNumeric(x) Then x = 1
If x = 0 Then Exit Sub 'si Feuil1 n'a pas été modifiée
If FilterMode Then ShowAllData 'si la feuille est filtrée
Worksheet_Change [A:C] 'lance la macro
ThisWorkbook.Names.Add "Modif", 0 'nom défini
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A:A,C:C]) Is Nothing Then Exit Sub
Dim t#, r As Range
t = Timer
Set r = Intersect(Target.EntireRow, Range("C2:C" & Rows.Count), UsedRange.EntireRow)
If r Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each r In r.Areas
r = "=IF(LOOKUP(RC[-2],'" & Feuil1.Name & "'!C1)=RC[-2],""""&VLOOKUP(RC[-2],'" & Feuil1.Name & "'!C1:C2,2),NA())"
r = r.Value 'supprime les formules
Next r
Application.EnableEvents = True
If Timer - t > 0.1 Then MsgBox "Feuille mise à jour en " & Format(Timer - t, "0.00 \s")
End Sub