Ménon au contraire... Tu étais sur la bonne voie mais tu t'es perdu en chemin !
La macro de Green Soft corrigée : (Désolé j'ai remis à ma sauce mais le mérite t'en revient quand même !)
Option Explicit
Sub Galopin()
Dim cptData&, cptNR&, cptCol&, iLR&, iLC&
Dim rng As Range, Arr(), ArrC()
Set rng = [A1].CurrentRegion
With rng
Set rng = .Offset(1).Resize(.Rows.Count - 1)
End With
Arr = rng.Value
iLR = UBound(Arr)
iLC = UBound(Arr, 2)
cptNR = 0
For cptData = 1 To UBound(Arr, 1)
If Not (Arr(cptData, 19) = "SupprimerLigne") Then
cptNR = cptNR + 1
ReDim Preserve ArrC(1 To UBound(Arr, 2), 1 To cptNR)
For cptCol = 1 To UBound(Arr, 2)
If Not (Cells(2, cptCol).HasFormula) Then
ArrC(cptCol, cptNR) = Arr(cptData, cptCol)
Else
ArrC(cptCol, cptNR) = Cells(cptData + 1, cptCol).Formula
End If
Next
End If
Next
Range(Cells(2, 1), Cells(iLR, iLC)).ClearContents
Cells(2, 1).Resize(UBound(ArrC, 2), UBound(ArrC, 1)) = Application.Transpose(ArrC)
End Sub
A+