Dans votre dernier exemple, le tableau n'a pas de trous, où alors je n'ai pas bien compris
voilà le code, j'ai testé bien sûr, mais faites vos propres tests.
Le code n'est pas très bon car il va supprimer des valeurs résiduelles au-dessous du tableau dans la colonne 1 (A12,A13...) si dans la ligne du tableau (B,C,D) tout est vide, mais normalement, çà ne doit pas arrivé vu la constitution de votre tableau
Le fichier doit être transformé en .xlsm ou la macro doit être incluse dans un xlsm qui va pointer sur votre fichier. Code à ajouter dans ce cas
Le tableau complet (avec les en-têtes doit être nommé TABLEAU)
Sub ActualiserTableau()
Dim i As Integer
Dim j As Integer
Dim Vide As Boolean
Dim Memo() As String
With Range("TABLEAU")
ReDim Memo(.Columns.Count)
Sheets("Liste").Activate
For i = 2 To .Rows.Count
For j = 1 To .Columns.Count
If j = 1 Then
If .Cells(i, j) = "" Then
.Cells(i, j) = Memo(j)
Else
Memo(j) = .Cells(i, j)
End If
End If
Next j
Next i
End With
'boucle de suppression
With Range("TABLEAU")
For i = 2 To .Rows.Count
Vide = True
For j = 2 To .Columns.Count
If .Cells(i, j) <> "" Then Vide = False
Next j
If Vide Then
'si reste colonnes vide, on supprimer
Range(.Cells(i, 1), .Cells(i, .Columns.Count)).Select
Selection.Delete Shift:=xlUp
End If
Next i
End With
End Sub