Ciao Melissa
Come detto in precedenza ti riposto la macro di prima un po' "sfoltita"
vb
Sub CreaTabella()
Dim i As Integer
Dim k As Integer
Dim ur As Integer
Dim lr As Integer
ur = Sheets("Foglio1").Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
ActiveSheet.Range("u30:am100000").ClearContents
For i = 30 To ur
lr = ActiveSheet.Cells(Rows.Count, "U").End(xlUp).Row
With ActiveSheet
If .Range("s" & i).Value <> "nullo" Then
For k = 21 To 39
.Cells(lr + 1, k).Value = Cells(i, k - 20).Value
Next k
End If
End With
Next i
Application.ScreenUpdating = True
End Sub
Ora mi devi dire se riesci a capire tutte le istruzioni.
Se hai bisogno provo a spiegartele.
Alfredo