edit : j'viens d'm'apercevoir de ça :
ça marchait très bien dans ce fichier :
où j'ai mis juste après tes Dim : GoTo Suite
et juste avant ton dernier Next i : :Suite
ainsi, ça saute directement à c'que j'ai fait en évitant tout c'que t'as fait avant.
j'étais persuadé que ta procédure initiale s'exécutait jusqu'à ce point ; aussi, j'ai simplement supprimé GoTo Suite
et :Suite
ce que j'ai fait est correct, mais je te laisse faire l'intégration par rapport à ta longue macro.
je mets ici la partie du code VBA que j'ai faite (et qui est juste avant la fin de la sub) :
Application.ScreenUpdating = 0
Dim nfs$, prc% ' n° fiche de soudage ; procédé
With Worksheets("QS")
z = .Cells(2, Columns.Count).End(xlToLeft).Column: If z < 6 Then Exit Sub
For l = 5 To z - 1
nfs = .Cells(1, l): prc = .Cells(2, l)
For j = z To l + 1 Step -1
If .Cells(1, j) = nfs And .Cells(2, j) = prc Then .Columns(j).Delete xlToLeft
Next j
Next l
End With
dhany