Bonjour Benibeno, Patrick, bonjour le forum,
Nos post se sont croisés Patrick...
Essaie comme ça :
Sub Macro1()
Dim D As Worksheet 'déclare la variable D (onglet data)
Dim L As Worksheet 'déclare la variable L (onglet liste)
Dim TEST As Boolean 'déclare la variable TEST
Set D = Worksheets("data") 'définit l'onglet D
Set L = Worksheets("liste") 'définit l'onglet L
'boucle 1 : inversée sur toutes les colonnes éditées de l'onglet D (en partant de la dernière jusqu'à la première)
For J = D.Cells(1, Application.Columns.Count).End(xlToLeft).Column To 1 Step -1
For I = 2 To L.Range("A" & Application.Rows.Count).End(xlUp).Row 'boucle 2 : sur tous les éléments de la liste
If D.Cells(1, J).Value = L.Cells(I, 1).Value Then 'condition : si l'en-tête de la colonne est égal à l'élément de la liste
TEST = True 'définit la variable TEST
Exit For 'sort de al boucle 2
End If 'fin de la condition
Next I 'prochain élément de la boucle 2
If TEST = False Then D.Columns(J).Delete 'si TEST est [Faux] supprime la colonne J de l'onglet D
TEST = False 'réinitialise la variable TEST
Next J 'prochaine colonne de la boucle 1
End Sub