dernière cellule non vide d'une colonne

  • Initiateur de la discussion Initiateur de la discussion jd
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

J

jd

Guest
bonjour le forum et les forumistes,

Ma recherche relève presque d'un cas d'école, mais comment obtient on la ligne de la dernière cellule non vide de la colonne 'AA'. Ce serais gentil de me donner un coup de main, merci.

jd
 
bonjour JD, voici un petit texte qui te sera très utile.
bonne journée A+.


Comment trouver la dernière cellule ?

Deux bonnes raisons de rechercher la dernière cellule :
- quand un classeur Excel occupe une place démesurée
- en VBA, pour ajouter une ligne en bas d'un tableau, ou pour sélectionner et mettre en forme la plage utile...
Dans la page Excel, il suffit de faire : Edition / atteindre / cellules / Dernière cellule.
Excel sélectionne la dernière cellule occupée.
Surprise parfois, il arrive que cette cellule soit vide !
Pour peu que la cellule soit assez loin de $A$1, le fichier risque de devenir énorme, Excel enregistrant chaque cellule de la zone utile (même si les cellules sont "vides").
Explication, soit la cellule contient une "chaîne vide" (un texte sans aucun caractère), soit la cellule a été formatée.
Solution, sélectionner les lignes et colonnes vides et les supprimer.
En VBA, la commande correspondant à "Edition / atteindre / cellules / Dernière cellule" est :
Cells.SpecialCells(xlCellTypeLastCell).Select
Avec évidemment l'inconvénient précédent des cellules "vides".
Si on veut utiliser le numéro de la dernière ligne, il suffit d'écrire :
Cells.SpecialCells(xlCellTypeLastCell).Row
Autre solution (avec le même inconvénient), l'utilisation de UsedRange (la plage utilisée) :
Si on est sûr que la première ligne est occupée, le numéro de la dernière ligne sera :
ActiveSheet.UsedRange.Rows.Count (nombre de lignes de la plage utile).
Si la première ligne risque d'être vide, on peut écrire :
ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row - 1
Ou bien, on peut utiliser End(xlDown) (ou xlUp ou xlRight ou xlLeft), commande correspondant à CTRL + flèche vers le bas (haut, droite, gauche), pour aller au bout de la plage.
Si par exemple toutes les cellules de la colonne A sont utilisées jusqu'en bas de la zone utile, on peut placer le curseur en A1 et taper CTRL+flèche vers le bas pour atteindre la dernière cellule de la colonne A.
Inconvénent, ne marche pas si il y a des cellules vides entre A1 et la dernière cellule.
Solution, partir du bas : Cells(65536, 2).End(xlUp).Select sélectionne la dernière cellule occupée de la colonne B.
Et si on n'est pas bien sûr que notre feuille a 65536 lignes :
Cells(Rows.Count, 2).End(xlUp).Select (toujours dans la colonne B).
Enfin, en VBA, la formule la plus élégante, et la plus efficace :
Columns(C:C).Find("*", [C1], , , , xlPrevious).Select va séléctionner la dernière cellule (réellement) non vide de la colonne C.
Elle utilise la fonction de recherche Find.
Dans la colonne C, on recherche la chaîne de caractères "*", c'est à n'importe quelle chaîne de caractères (* est un caractère joker qui peut représenter n'importe quel caractère ou groupe de caractères).
Et on recherche cette chaîne à partir de C1, première cellule de la colonne, en partant vers le haut (xlPrevious). Excel, à défaut de pouvoir chercher plus haut que C1, va balayer toutes les cellules à partir de C65536 en allant vers le haut, et donc trouver la dernière cellule occupée de la colonne.
On peut même se passer de la cellule de départ, Excel partant par défaut de la première :
Columns(3).Find("*", , , , , xlPrevious).Select (ne pas oublier les 5 virgules !).
Rows(2).Find("*", , , , , xlPrevious).Column donnera de même le numéro de colonne de la dernière cellule de la deuxième ligne,
Cells.Find("*", , , , , xlPrevious).Row le numéro de la dernière ligne non vide.
et Cells.Find("*", , , , xlByColumns, xlPrevious).Column le numéro de la dernière colonne non vide.
 
Re bonjour à toutes et à tous,

Je te remercie mcpoy pour le Tuto de la dernière cellule. Il me sera d'une aide très précieuse, il gardera une place privilégié ds mes documents d'aide.

Bonne fin de journée et bonne soirée.

jd
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
100
Réponses
10
Affichages
455
Retour