bonsoir
essayer ca :
Sub result()
Dim x As Integer, j As Integer, i As Integer, drln1 As Integer, drln2 As Integer, drln3 As Integer
Dim BDD As Worksheet, FRMT1 As Worksheet, FRMT2 As Worksheet
Set BDD = Sheets("BDD")
Set FRMT1 = Sheets("FORMAT1")
Set FRMT2 = Sheets("FORMAT2")
drln1 = BDD.Range("a" & Rows.Count).End(xlUp).Row
drln2 = FRMT1.Range("a" & Rows.Count).End(xlUp).Row
drln3 = FRMT2.Range("a" & Rows.Count).End(xlUp).Row
FRMT1.Range("A2" & ":C" & drln2).ClearContents
FRMT2.Range("A2" & ":C" & drln3).ClearContents
With BDD
For x = 4 To drln1
j = 3
Do While .Cells(x, j) <> "" '
i = i + 1
FRMT1.Cells(i + 1, 1).Value = .Cells(x, 1).Value
FRMT1.Cells(i + 1, 2).Value = .Cells(x, 2).Value
FRMT1.Cells(i + 1, 3).Value = .Cells(x, j).Value
FRMT2.Cells(i + 1, 3).Value = .Cells(x, j).Value
j = j + 1
Loop
FRMT2.Cells((i - (j - 3)) + 2, 1).Value = .Cells(x, 1).Value
FRMT2.Cells((i - (j - 3)) + 2, 2).Value = .Cells(x, 2).Value
Next
End With
End Sub