Une remarque importante à garder à l'esprit lors de l'utilisation de la solution ...
LastRow = ws.Cells.Find(What:="*", After:=ws.range("a1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
... est de s'assurer que votre variable LastRow
est de type Long
:
Dim LastRow as Long
Sinon, vous finirez par obtenir des erreurs DE DÉBORDEMENT dans certaines situations dans les classeurs .XLSX
C'est ma fonction encapsulée que je dépose dans diverses utilisations de code.
Private Function FindLastRow(ws As Worksheet) As Long
' --------------------------------------------------------------------------------
' Find the last used Row on a Worksheet
' --------------------------------------------------------------------------------
If WorksheetFunction.CountA(ws.Cells) > 0 Then
' Search for any entry, by searching backwards by Rows.
FindLastRow = ws.Cells.Find(What:="*", After:=ws.range("a1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End If
End Function