Surement facile ... ?!

voix_off Messages postés 10 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 6 juin 2005 - 30 mars 2005 à 10:56
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 - 30 mars 2005 à 11:55
Bonjour,

j'ai une petite difficulté avec VBA sous Excel :
j'ai besoin de trouver de créer 2 variables : une qui est le NUMERO de la dernière ligne de mon tableau, et une pour la première.
En variable, je veux récupérer le numéro de la ligne, pas le contenu d'une cellule ou la ligne elle-même ...
Merci de vos réponses !

2 réponses

olixelle Messages postés 506 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 3 mars 2008 2
30 mars 2005 à 11:02
de mémoire il existe une propriété sous excel qui contient ce numéro.
Sinon, ya la possibilité crade qui consiste a balayer toutes les lignes et de s'arreter quand la premiere colonne est vide (ou plrs colonne, a toi de voir !) :

-----------------------------------------------------
dim ligne
ligne = 1

do while cells(ligne, 1).text <> ""
ligne = ligne + 1
loop
-------------------------------------------

Rollerman
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
30 mars 2005 à 11:55
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 éceuils:
2° possibilité :
La Derniere= range("C65536").End(XlUp)
Il y a 65536 lignes dans excel 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(xlleft).offset(0,1) te trouves la première cellule vide sur la
ligne 34

It@li@
0
Rejoignez-nous