A mon sens, il te faut te préoccuper d'abord de la valeur de i... ! L'initialiser à 2 par exemple !
Une fois assuré que i représente la ligne voulue, Rows(i) renverra ladite ligne.
Il faudra coller dans la foulée de la copie et supprimer la ligne de collage, ce qui t'évitera une nouvelle erreur.
Mais auparavant il faut reduire ta ligne à rallonge !
En mettant la partie commune sous instruction With... End With (ce qui de plus accélèrera VBA !!)
et tester ton énumération de cellule au moyen d'une boucle :
With Workbooks("SuiviER.xlsm").Worksheets("Feuil7")
For k = 217 To 227
If .Cells(i, k).Value ="" Then Exit For
Next k
If k > 227 Then .Rows(i).Copy Workbooks("SuiviER.xlsm").Worksheets("Feuil11").Cells(compteur + 4, 1)
End With
Tant qu'on y est, voilà qui devrait déjà être un peu plus rationnel :
Sub RecupER()
Dim compteur%, i%, k%
i = 2
With Workbooks("SuiviER.xlsm")
While .Worksheets("Feuil7").Cells(i, 2).Value <> ""
compteur = .Worksheets("Feuil11").Cells(1, 2).Value
With .Worksheets("Feuil7")
For k = 217 To 227
If .Cells(i, k).Value = "" Then Exit For
Next k
End With
If k > 227 Then .Worksheets("Feuil7").Rows(i).Copy .Worksheets("Feuil11").Cells(compteur + 4, 1)
i = i + 1
Wend
End With
End Sub