Recherche de la dernière cellule utilisée dans une macro (Microsoft Excel)
Si vous travaillez dans une feuille de calcul, vous savez que vous pouvez appuyer sur Ctrl + Fin pour accéder à la dernière cellule de la feuille de calcul. Ce que le raccourci fait est de choisir la cellule qui représente l’intersection de la dernière colonne contenant des données et de la dernière ligne contenant des données. Ainsi, si la dernière colonne dans laquelle vous avez des données est la colonne F, et la dernière ligne dans laquelle vous avez des données est la ligne 27, alors Ctrl + Fin sélectionnera la cellule F27.
Pour faire cette même tâche à partir d’une macro, vous utilisez une commande très simple, comme illustré ici:
Sub FindLast1() ActiveCell.SpecialCells(xlLastCell).Select End Sub
Cela revient fonctionnellement à appuyer sur Ctrl + Fin. Cependant (et c’est un gros problème), Excel ne garde pas dynamiquement le suivi des lignes et des colonnes qui sont les dernières utilisées dans une feuille de calcul. Par exemple, supposons que vous ouvrez un classeur, appuyez sur Ctrl + Fin et que vous êtes redirigé vers la cellule F27. Si vous supprimez ensuite 3 lignes et une colonne, vous vous attendez à ce que Ctrl + Fin vous amène à la cellule E24. Ce n’est pas le cas; il vous amène toujours à la cellule F27, jusqu’à ce que vous enregistriez le classeur et le rouvriez.
Ce même problème affecte le code de macro indiqué dans la macro FindLast1; il vous mènera à la cellule « la plus élevée », quelles que soient les colonnes ou les lignes que vous avez supprimées au cours de la session en cours.
Ce qu’il faut, c’est un moyen de réinitialiser l’indicateur de «dernière cellule», comme si vous aviez enregistré et rouvert le classeur. Il n’existe aucune commande de macro intrinsèque qui fait cela, mais il existe un moyen de forcer Excel à effectuer la réinitialisation. Tout ce que vous avez à faire est d’ajuster la macro comme suit:
Sub FindLast2() x = ActiveSheet.UsedRange.Rows.Count ActiveCell.SpecialCells(xlLastCell).Select End Sub
Cette macro vous amène toujours à la cellule appropriée – elle fonctionne comme vous vous attendez à ce que Ctrl + Fin fonctionne toujours. Cela fonctionne parce qu’apparemment Excel, lorsqu’il calcule la propriété Count pour le nombre de lignes dans la feuille de calcul, réinitialise toujours l’indicateur «dernière cellule».
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (2271) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
link: / excelribbon-Finding_the_Last-Used_Cell_in_a_Macro [Recherche de la dernière cellule utilisée dans une macro]
.