Sub SupCol()
Dim DC%, C%
Application.ScreenUpdating = False
' Nombre de colonnes occupées
DC = Cells(1, Columns.Count).End(xlToLeft).Column
' Insertion d'une ligne au début
Rows("1:1").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
' Formules en ligne 1
Range(Cells(1, 1), Cells(1, DC)).FormulaLocal = "=SIERREUR(EQUIV(A2;colonne!$A:$A;0);"""")"
' On ne garde que les valeurs
Range(Cells(1, 1), Cells(1, DC)) = Range(Cells(1, 1), Cells(1, DC)).Value
' On supprime toutes les colonnes dont les cellules en ligne 1 sont vides
For C = DC To 1 Step -1
If Cells(1, C) = "" Then Columns(C).Delete Shift:=xlToLeft
Next C
' On supprime la première colonne
Rows("1:1").Delete Shift:=xlUp
End Sub