La dernière cellule de la colonne (VBA)
sans VBA d'abord :
Avec un raccourci clavier : mets toi sur la première cellule de ta colonne ctrl + flèche vers le bas. Mais attention, excel s'arrête chaque fois qu'il trouve une cellule vide.
Par VBA : ce code est donc à inclure dans une macro (exemple ci dessous) Pour trouver la dernière cellule remplie de la colonne C :
1° possiblité :
LaDerniere = range("C1"). end(xldown)
pb : si il n'y a rien en C1, excel plante. Si il y a des cellules vides dans la colonne, excel s'arrêtera sur la cellule au dessus du premier vide. on préferera donc et de loin la seconde solution qui évite ces deux écueils:
2° possibilité : La Derniere= range("C65536").End(XlUp)
Il y a 65536 lignes dans excel (plus dans les versions > à 2003, ajuste !)
donc la C65536 est la dernière. Excel part de cette cellule et remonte la colonne jusqu'à ce qu'il trouve une cellule pleine.
Et pour sélectionner la cellule qui est juste en dessous de cette dernière ? Utilise offset (décaler en français... mais VBA cause seulement le grand breton)
La PremiereDisponible = range ("C65536"). End(XlUp).offset(1,0) le 1 dit à excel de décaler de 1 ligne et le 0 de rester dans la même colonne.
On peut faire la même chose avec les lignes ? Oui !
range("IV34").end(xltoleft).offset(0,1) te trouve la première cellule vide sur la ligne 34
Et si maintenant, je voudrais qu'excel se positionne à l'ouverture du classeur sur la dernière cellule pleine de la colonne A ?
Première chose : ouvre l'éditeur VBA par alt+F11 tu vois apparaitre à gauche un explorateur. Ouvre le dossier correspondant à ton classeur (VBA project(toto) si ton classeur s'appelle toto.xls. tu vois une page nommée ThisWorkbook. Ouvre la. La macro est à placer sur cette feuille puisque tu veux que cette macro fonctionne à l'ouverture du classeur. Cette page gère les événements qui s'effectuent sur le classeur lorsqu'on l'ouvre, ou qu'on l'enregistre ou qu'on l'imprime par exemple. En haut de cette page, tu as deux menus déroulants. A l'ouverture le premier indique (Général) le second (déclarations). Sélectionne dans le menu de gauche "workbook". Le menu de droite se met automatiquement sur "open" et tu vois s'inscrire dans ta page
Private sub Workbook_Open() end sub
(si tu voulais gérer une macro s'exécutant à la fermeture, à ce stade, tu devrais aller modifier le menu de droite pour y selectionner par exemple beforeclose) Colle en dessous de Private sub... Pour sélectionner la dernière celle de la colonne A :
Range("a65536").End(xlUp).Select Pour connaître le N° de la ligne de cette cellule:
Range("a65536").End(xlUp).row Et enfin, comment sélectionner la plage de données allant de A1 jusqu'à la dernière cellule remplie de la colonne A ?
Truc=range("A1:A" & [A65536].end(xlup).row) explication : dans un "range" tu peux utiliser le signe & pour concaténer différents éléments. Ici la seconde partie de l'expression : [A65536].end(xlup).row renvoie le N° de la ligne (row) occupée par la dernière cellule non vide de la colonne A. (rappel : [A65536] est équivalent à evaluate(range"A65536").
Auteur : Flo Cabon
Mots clefs associés à cette page : cellule, dernier, dernière
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
