Un ejemplo sería así, siguiendo a continuación de tu macro con el pase a la hoja (se asume hoja activa, sino antepone la expresión: Sheets(xxx).
Private Sub L_Click()
If L.ListIndex = -1 Then Exit Sub
T = L.List(L.ListIndex, 1)
D = L.List(L.ListIndex, 2)
P = L.List(L.ListIndex, 3)
a = L.List(L.ListIndex, 4)
'se envían los datos a la hoja. se ubica la primer fila libre
x = Range("A" & Rows.Count).End(xlUp).Row + 1
Range("A" & x) = T
Range("B" & x) = D
Range("C" & x) = P
Range("D" & x) = a
End Sub
Si no necesitas las variables para otra parte de tu código podés omitirlas y directamente la macro sería:
Private Sub L_Click()
'ajustada x Elsamatilde
If L.ListIndex = -1 Then Exit Sub
'se envían los datos a la hoja. se ubica la primer fila libre
x = Range("A" & Rows.Count).End(xlUp).Row + 1
Range("A" & x) = L.List(L.ListIndex, 1)
Range("B" & x) = L.List(L.ListIndex, 2)
Range("C" & x) = L.List(L.ListIndex, 3)
Range("D" & x) = L.List(L.ListIndex, 4)
End Sub
Por supuesto que las col en tu hoja ya tendrán el formato apropiado, y para pasar de Listbox quizás algunos campos deban ser 'convertidos' de texto al formato que requiere tu hoja.... pero esto es tema aparte.
Sdos!