Excel VBA Last Row
Trouver la dernière ligne d'une colonne est un aspect important pour écrire des macro et les rendre dynamiques. Comme nous ne préférerions pas mettre à jour les plages de cellules de temps en temps lorsque nous travaillons avec des références de cellules Excel. En tant que codeur / développeur, vous préférez toujours écrire un code dynamique qui peut être utilisé sur toutes les données et suffire à vos besoins. De plus, ce serait toujours bien si vous avez la dernière ligne connue de vos données afin de pouvoir changer dynamiquement le code selon vos besoins.
Je vais juste souligner un exemple qui réitère l'importance du code dynamique.
Supposons que je dispose des données ci-dessous avec l'employé et ses salaires.
Et regardez le code ci-dessous:
Code:
Sub Example1 () Range ("D2"). Value = WorksheetFunction.Sum (Range ("B2: B11")) End Sub
Ici, ce code imprime la somme des salaires de tous les employés (cellule B2: B11 ) dans la cellule D2 . Voir l'image ci-dessous:
Maintenant, que se passe-t-il si j'ajoute des cellules dans ces données et réexécute ce code?
Logiquement, le code ci-dessus ne résumera pas les 14 lignes de la colonne B. La raison en est la plage que nous avons mise à jour sous WorksheetFunction (qui est B2: B11). C'est la raison pour laquelle un code dynamique qui peut prendre en considération la dernière ligne remplie est plus important pour nous.
Dans cet article, je vais présenter quelques méthodes qui peuvent être utiles pour trouver la dernière ligne d'un ensemble de données donné à l'aide du code VBA.
Comment trouver la dernière ligne utilisée dans la colonne à l'aide de VBA?
Vous trouverez ci-dessous les différents exemples avec différentes méthodes pour trouver la dernière ligne utilisée d'une colonne dans Excel à l'aide du code VBA.
Vous pouvez télécharger ce modèle Excel de dernière ligne VBA ici - Modèle Excel de dernière ligne VBAExemple # 1 - Utilisation de la méthode Range.End ()
Eh bien, cette méthode revient à utiliser la touche Ctrl + Flèche vers le bas dans Excel pour accéder à la dernière ligne non vide. Sur des lignes similaires, suivez les étapes ci-dessous pour créer du code dans VBA pour atteindre la dernière ligne non vide d'une colonne dans Excel.
Étape 1: Définissez une variable qui peut prendre la valeur de la dernière ligne non vide de la colonne Excel.
Code:
Sub Example2 () Dim Last_Row As Long End Sub
Ici, la variable Last_Row est définie comme LONG juste pour s'assurer qu'elle peut accepter n'importe quel nombre d'arguments.
Étape 2: utilisez la variable définie pour conserver la valeur de la dernière ligne non vide.
Code:
Sub Example2 () Dim Last_Row As Long Last_Row = End Sub
Étape 3: Tapez le code commençant par CELLS (Rows.Count devant Last_Row = .
Code:
Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count End Sub
Étape 4: Mentionnez 1 après une virgule dans le code susmentionné. La valeur numérique 1 est synonyme de la première colonne de la feuille Excel.
Code:
Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) End Sub
Ce code permet à VBA de connaître le nombre total de lignes (vides + non vides) présentes dans la première colonne de la feuille de calcul Excel. Cela signifie que ce code permet au système d'accéder à la dernière cellule d'Excel.
Maintenant, que se passe-t-il si vous êtes dans la dernière cellule de l'Excel et que vous souhaitez accéder à la dernière ligne non vide? Vous utiliserez Ctrl + Flèche vers le haut, non?
La même logique que nous allons utiliser dans la prochaine ligne de code.
Étape 5: utilisez une combinaison de la touche Fin et de xlUp pour accéder à la dernière ligne non vide d'Excel.
Code:
Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) End Sub
Cela vous amènera à la dernière ligne non vide dans Excel. Cependant, vous vouliez un numéro de ligne pour le même.
Étape 6: Utilisez ROW pour obtenir le numéro de ligne de la dernière ligne non vide.
Code:
Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row End Sub
Étape 7: affichez la valeur de Last_Row qui contient le dernier numéro de ligne non vide à l'aide de MsgBox.
Code:
Sub Example2 () Dim Last_Row As Long Last_Row = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox Last_Row End Sub
Étape 8: Exécutez le code en utilisant le bouton Exécuter ou en appuyant sur F5 et voyez la sortie.
Production:
Étape 9: Maintenant, supprimons une ligne et voyons si le code donne un résultat précis ou non. Cela nous aidera à vérifier le dynamisme de notre code.
Exemple # 2 - Utilisation de Range et de SpecialCells
Nous pouvons également utiliser la propriété Range et SepcialCells de VBA pour obtenir la dernière ligne non vide de la feuille Excel.
Suivez les étapes ci-dessous pour obtenir la dernière ligne non vide dans Excel à l'aide du code VBA:
Étape 1: définissez à nouveau une variable comme Long.
Code:
Sub Example3 () Dim Last_Row As Long End Sub
Étape 2: Commencez à stocker la valeur dans la variable Last_Row à l'aide de l'opérateur d'affectation.
Code:
Sub Example3 () Dim Last_Row As Long Last_Row = End Sub
Étape 3: Commencez à saisir la plage («A: A») .
Code:
Sub Example3 () Dim Last_Row As Long Last_Row = Range ("A: A") End Sub
Étape 4: utilisez la fonction SpecialCells pour trouver la dernière cellule non vide.
Code:
Sub Example3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub
Cette fonction SpecialCells sélectionne la dernière cellule de votre Excel car elle est écrite entre parenthèses ( xlCellTypeLastCell permet de sélectionner la dernière cellule non vide de votre feuille Excel).
Étape 5: Maintenant, utilisez ROW pour obtenir la dernière ligne de votre feuille Excel.
Code:
Sub Example3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub
Cela vous renverra la dernière ligne non vide de votre excel.
Étape 6: Maintenant, affectez cette valeur de Last_Row à MsgBox afin que nous puissions voir le dernier numéro de ligne non vide sur la boîte de message.
Code:
Sub Example3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub
Étape 7: Exécutez le code en appuyant sur F5 ou sur le bouton Exécuter placé en haut du coin gauche.
Production:
Vous pouvez voir que le dernier numéro de cellule non vide est sorti via MsgBox en référence à la colonne A. Parce que nous avons mentionné la colonne A sous la fonction Plage lors de la définition de la formule variable.
Étape 8: Si nous supprimons une ligne et pouvons exécuter cette formule. Voyons ce qui se passe.
Vous pouvez voir que le système a toujours donné le nombre de lignes à 14. Même si j'ai supprimé une ligne et que le nombre de lignes réel est 13, le système n'a pas capturé le nombre de lignes avec précision. Pour que le système capture le nombre réel de lignes, vous devez enregistrer la feuille de calcul et réexécuter le code.
Vous pouvez voir le nombre de lignes réel affiché dans cette capture d'écran maintenant.
Exemple # 3 - Utilisation de Range.Find ()
Suivez les étapes ci-dessous pour obtenir la dernière ligne non vide dans Excel à l'aide du code VBA:
Étape 1: définissez une variable aussi longtemps.
Code:
Sub Example4 () Dim Last_Row As Long End Sub
Étape 2: Utilisez maintenant le code suivant pour voir la dernière ligne non vide.
Code:
Sub Example4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row End Sub
Ici, la fonction FIND recherche une première cellule non vide. L'astérisque (*) est un opérateur générique qui aide à le découvrir.
En partant de la cellule A1, le système retourne à la dernière cellule de la feuille et recherche en arrière (xlPrevious). Il se déplace de droite à gauche (xlByRows) et boucle dans la même feuille à travers toutes les lignes sur des lignes similaires jusqu'à ce qu'il trouve une ligne non vide (voir le .ROW à la fin du code).
Étape 3: utilisez MsgBox pour stocker la valeur de la dernière ligne non vide et voyez-la comme une fenêtre contextuelle.
Code:
Sub Example4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlPrevious, _ MatchCase: = False) .Row MsgBox Last_Row End Sub
Étape 4: exécutez le code et voyez la sortie sous forme de fenêtre contextuelle contenant le dernier numéro de ligne non vide.
Production:
Choses dont il faut se rappeler
- La fin (exemple 1) peut être utilisée pour trouver la première cellule / ligne vierge ou la dernière cellule / ligne non vide dans une colonne donnée à l'aide du code VBA.
- La fin fonctionne sur une seule colonne la plupart du temps. Si vous avez des données dans des plages, il serait difficile de décider quelle colonne doit être utilisée pour trouver la dernière ligne non vide.
- Find (Exemple3) fonctionne sur une plage entière depuis le point de départ et découvre la dernière cellule / ligne non vide dans une colonne donnée à l'aide du code VBA. Il peut également être utilisé pour trouver la dernière colonne non vide.
Articles recommandés
Ceci est un guide de VBA Last Row. Ici, nous discutons comment trouver la dernière ligne utilisée dans une colonne donnée avec quelques exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter les articles suivants pour en savoir plus -
- Comment utiliser la colonne d'insertion VBA?
- Comment sélectionner des lignes et des colonnes Excel?
- Présentation des cellules de la gamme VBA
- Comment ajouter des cellules dans Excel?