Sub test()
Dim cellResultat As Range
Set cellResultat = ThisWorkbook.Sheets("[B]Feuil2[/B]").Range("A2")
With ThisWorkbook.Sheets("Feuil1")
For i = 2 To .Range("A" & .Rows.Count).End(xlUp).Row
For j = 4 To 12
If .Cells(i, j) <> "" Then
cellResultat = .Range("A" & i)
cellResultat.Offset(0, 1) = .Range("B" & i)
cellResultat.Offset(0, 2) = .Range("C" & i)
cellResultat.Offset(0, 3) = j - 3
cellResultat.Offset(0, 4) = .Cells(i, j)
Set cellResultat = cellResultat.Offset(1, 0)
End If
Next j
Next i
End With
End Sub