Sub Worksheet_Activate()
Dim itablo, tablo_out, i%, i_out%, N%
Range("A2:D1000").ClearContents
Application.ScreenUpdating = False
With Sheets("Feuil1")
tablo = .Range("A2:L" & .Range("A65500").End(xlUp).Row)
End With
ReDim tablo_out(4 * UBound(tablo), 3) ' Max taille tableau de sortie
i_out = 0 ' Pointeur d'écriture
For i = 1 To UBound(tablo)
For N = 1 To 10 Step 4 ' 4 champs à copier
If tablo(i, N) <> "" Then ' Si champ non vide
tablo_out(i_out, 0) = tablo(i, N + 0)
tablo_out(i_out, 1) = tablo(i, N + 1)
tablo_out(i_out, 2) = tablo(i, N + 2)
tablo_out(i_out, 3) = tablo(i, N + 3)
i_out = i_out + 1 ' Ligne suivante pour le prochain
End If
Next N
Next i
[A2].Resize(UBound(tablo_out, 1), 1 + UBound(tablo_out, 2)) = tablo_out ' Restitution résultat
Columns.AutoFit 'Ajustement largeurs colonnes
End Sub