Private Sub Worksheet_Change(ByVal Target As Range)
'--------------------------------------------------------------
' Intecepte suppression Col A, B ou C ds Feuil1 et suppression
' de la même colonne dans feuil2
'--------------------------------------------------------------
Dim Nm As Name, Plage As Range, x As Integer, Col As String
Set Plage = Range("A:D")
Col = Split(Target.Address, "$")(2)
If Not Application.Intersect(Target, Plage) Is Nothing Then
If Target.Rows.Count = Rows.Count Or _
Target.Columns.Count = Columns.Count Then
For Each Nm In ActiveWorkbook.Names
If Nm.RefersTo = "=Feuil1!$" & Col & ":$" & Col Then x = x + 1
If Nm.RefersTo = "=Feuil1!#REF!" Then Nm.Delete
Next
If x > 0 Then
Sheets("Feuil2").Range(Target.Address).EntireColumn.Delete
MsgBox " Suppression faite sur Feuil2", vbInformation
End If
End If
'Renommage des col A,B et C
With ActiveWorkbook.Worksheets("Feuil1")
.Names.Add Name:="ColA", RefersToR1C1:="=Feuil1!C1"
.Names.Add Name:="ColB", RefersToR1C1:="=Feuil1!C2"
.Names.Add Name:="ColC", RefersToR1C1:="=Feuil1!C3"
.Names.Add Name:="ColD", RefersToR1C1:="=Feuil1!C4"
End With
End If
End Sub