Option Explicit
Sub test()
Dim a, b(), i As Long, n As Long, j As Byte
Application.ScreenUpdating = False
With Sheets("Import CA").Range("A1").CurrentRegion
a = .Value
End With
ReDim b(1 To UBound(a, 1) * 3, 1 To UBound(a, 2))
b(1, 1) = "TYPE": b(1, 2) = "JAL": b(1, 3) = "DATE": b(1, 4) = "NP"
b(1, 5) = "N°FACTURE": b(1, 6) = "REFERENCE": b(1, 7) = "CGEN": b(1, 8) = "CTIERS"
b(1, 9) = "NIVANAL": b(1, 10) = "CODE ANA": b(1, 11) = "LIBELLE": b(1, 12) = "MODERGLT"
b(1, 13) = "ECHEANCE": b(1, 14) = "DEBIT": b(1, 15) = "CREDIT"
n = 1
For i = 2 To UBound(a, 1)
n = n + 3
If a(i, 10) <> "" Then
For j = 1 To UBound(a, 2)
b(n - 2, j) = a(i, j)
b(n - 1, j) = a(i, j)
b(n, j) = a(i, j)
Next
b(n - 1, 1) = "A"
b(n - 1, 9) = 1
b(n, 7) = 5
Else
n = n - 2
For j = 1 To UBound(a, 2)
b(n, j) = a(i, j)
Next
End If
Next
'Restitution en Feuil2
With Sheets("Feuil2")
.Cells.Clear
With .Cells(1)
.Resize(n, UBound(b, 2)).Value = b
With .CurrentRegion
With .Rows(1)
.BorderAround Weight:=xlThin
.Interior.ColorIndex = 44
End With
.Font.Name = "calibri"
.Font.Size = 10
.BorderAround Weight:=xlThin
.Borders(xlInsideVertical).Weight = xlThin
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.Columns.AutoFit
End With
End With
End With
Application.ScreenUpdating = True
End Sub