Sub DupliqueLigne()
Dim MonTAb, TabCible, TabFinal(), i As Long, j As Long, Flag As Boolean, x As Long
TabCible = Array("HC30MB", "13OTHTAX") 'liste des codes pour lesquels on duplique la ligne
With Worksheets("IMPORT")
MonTAb = .Range("A2:O" & .Range("A" & .Rows.Count).End(xlUp).Row)
For i = LBound(MonTAb) To UBound(MonTAb)
Flag = False
x = x + 1
ReDim Preserve TabFinal(1 To UBound(MonTAb, 2), 1 To x)
For j = LBound(MonTAb, 2) To UBound(MonTAb, 2)
TabFinal(j, x) = MonTAb(i, j)
Next j
For j = LBound(TabCible) To UBound(TabCible)
If MonTAb(i, 10) = TabCible(j) Then
Flag = True
Exit For
End If
Next j
If Flag Then ' si correspondance
x = x + 1
ReDim Preserve TabFinal(1 To UBound(MonTAb, 2), 1 To x)
For j = LBound(MonTAb, 2) + 1 To UBound(MonTAb, 2)
TabFinal(j, x) = MonTAb(i, j)
Next j
TabFinal(1, x) = "A3"
End If
Next i
.Range("A2:O" & .Range("A" & .Rows.Count).End(xlUp).Row).ClearContents
.Range("A2").Resize(UBound(TabFinal, 2), UBound(TabFinal, 1)) = Application.Transpose(TabFinal)
End With
End Sub