VBA : Comment trouver la dernière ligne utilisée
Vous pouvez utiliser la syntaxe de base suivante dans VBA pour rechercher la dernière ligne utilisée dans une feuille Excel :
Sub FindLastRow()
Range("D2")=Cells.Find("*",Range("A1"),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
End Sub
Cet exemple particulier recherche la dernière ligne utilisée dans la feuille actuelle et renvoie le résultat dans la cellule D2 .
Si vous souhaitez plutôt afficher la dernière ligne d’une boîte de message, vous pouvez utiliser la syntaxe suivante :
Sub FindLastRow()
Dim LastRow As Long
LastRow=Cells.Find("*", Range("A1"),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
MsgBox "Last Row: " & LastRow
End Sub
Les exemples suivants montrent comment utiliser chacune de ces méthodes dans la pratique.
Exemple 1 : rechercher la dernière ligne à l’aide de VBA et afficher les résultats dans la cellule
Supposons que nous ayons l’ensemble de données suivant dans Excel qui contient des informations sur divers joueurs de basket-ball :
On peut créer la macro suivante pour retrouver la dernière ligne utilisée dans cette feuille Excel et afficher le résultat dans la cellule D2 :
Sub FindLastRow()
Range("D2")=Cells.Find("*",Range("A1"),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
Notez que la cellule D2 contient la valeur 11 .
Cela nous indique que la dernière ligne utilisée dans cette feuille particulière est la ligne 11.
Il convient également de noter que si vous avez des cellules vides avant une cellule utilisée, cette macro trouvera toujours la dernière ligne utilisée.
Par exemple, supposons que nous exécutions la macro sur l’ensemble de données suivant :
La cellule D2 contient une valeur de 16 car il s’agit de la dernière ligne contenant une valeur.
Exemple 2 : rechercher la dernière ligne à l’aide de VBA et afficher les résultats dans la boîte de message
Supposons que nous souhaitions plutôt rechercher la dernière ligne utilisée dans une feuille et afficher le numéro de ligne dans une boîte de message.
Nous pouvons créer la macro suivante pour ce faire :
Sub FindLastRow()
Dim LastRow As Long
LastRow=Cells.Find("*", Range("A1"),xlFormulas,xlPart,xlByRows,xlPrevious,False).Row
MsgBox "Last Row: " & LastRow
End Sub
Lorsque nous exécutons cette macro, nous recevons le résultat suivant :
La boîte de message nous indique que la dernière ligne utilisée dans la feuille est la ligne 11 .
Remarque : Vous pouvez trouver la documentation complète de la méthode VBA Find ici .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :
VBA : Comment calculer la valeur moyenne de la plage
VBA : Comment compter le nombre de lignes dans la plage
VBA : Comment supprimer les valeurs en double dans la plage