Bonsoir Scorpio, Vgendron, Gosselien
En plus long que la solution présentée par Gosselien mais en se focalisant sur une donnée non vide en colonne B.
Autre approche..
++ et bonne soirée à tous
zebanx
-----
Sub copyd()
Dim ta(), tb()
derligne = Sheets(1).Cells(Rows.Count, 1).End(3).Row
ta = Sheets(1).Range("A1:" & derligne).Value
ReDim tb(1 To UBound(ta, 1), 1 To 4)
n = 1
For i = LBound(ta, 1) To UBound(ta, 1)
If ta(i, 2) <> "" Then
For j = 1 To 4
tb(n, j) = ta(i, j)
Next j
n = n + 1
End If
Next i
Sheets(2).Cells.ClearContents
Sheets(2).Cells(1, 1).Resize(UBound(tb, 1), 4) = tb
End Sub