Private Sub Worksheet_Change(ByVal Target As Range)
Dim d As Object, tablo, i&, x$, a
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
'---liste sans doublon des noms en colonne A---
tablo = UsedRange.Columns(1).Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
For i = 2 To UBound(tablo)
x = Trim(CStr(tablo(i, 1)))
If x <> "" Then d(x) = ""
Next i
'---suppression des feuilles non inscrites en colonne A---
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For i = Sheets.Count To 1 Step -1
x =...