Excel : Détection dernière ligne d'un tableau

Résolu/Fermé
alainjjb
Messages postés
761
Date d'inscription
jeudi 17 mai 2007
Statut
Membre
Dernière intervention
7 mars 2022
- 26 juin 2008 à 21:54
 damien59148 - 14 févr. 2018 à 10:21
Bonjour,
je viens de créer (vite dit car c'est un de vous qui me l'avez transmis) une macro d'insertion de ligne en fin de tableau Excel (2 méthodes qui réagissent de la même manière) :
1°) Sub insert1_ligne()
DerniereLigne = (Range("A1").SpecialCells(xlCellTypeLastCell).Row)
ligne = DerniereLigne - 1
Rows(ligne).Select
Selection.Insert Shift:=xlDown
2°) Sub insert2_ligne()
Dim ligne As Long
ligne = (Cells.SpecialCells(xlCellTypeLastCell).Row) - 1
Rows(ligne).Select
Selection.Insert Shift:=xlDown

Au début tout se passe à merveille. La ligne es insérée correctement. Mais lorsque je supprime des lignes du tableau, la dernière ligne est détectée comme si les lignes supprimées existaient tjs.

Quelqu'un peut-il me dire ce qui peut bien se passer ?

Merci d'avance

Alain

3 réponses

m@rina
Messages postés
17467
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
2 juillet 2022
10 928
26 juin 2008 à 22:26
Bonsoir,

Le mieux est de partir d'en bas, afin d'atteindre la dernière cellule de la colonne :

Range("A65536").End(xlUp).Offset(1, 0).Select

C'est aussi simple que ça ! ;)

m@rina
26
alainjjb
Messages postés
761
Date d'inscription
jeudi 17 mai 2007
Statut
Membre
Dernière intervention
7 mars 2022
107
26 juin 2008 à 22:54
Bonsoir M@rina,
c'est aussi simple que ça ... pour toi car je n'ai même pas compris le résultat de cette commande.
A65536 : ce nombre correspond à quoi ? (le nbre maxi de lignes d'un tableau ?)
Range("A65536").End(xlUp).Offset(1, 0).Select : me positionne sur la 1ère cellule de la dernière ligne valorisée ?

Merci pour ces futures précisions

Alain
0
merci M@rina !
trop fort !
0
pascal paludier
18 janv. 2011 à 22:37
bravo, voilà un commentaire efficace, un énorme merci
0
69marty69
Messages postés
304
Date d'inscription
mardi 28 juillet 2009
Statut
Membre
Dernière intervention
23 juin 2015
43
12 déc. 2011 à 14:48
Salut, donc merci je c'est que tu a répondu en 2008 mais bon je te dit quand même merci ;)

Cordialement.
0
Merci M@rina
0
m@rina
Messages postés
17467
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
2 juillet 2022
10 928
26 juin 2008 à 23:41
Bonsoir Alain,

Oui 65536 est le nombre maximum de lignes d'un classeur Excel 2002-2003, car pour la version 2007, c''est 1048576 lignes !

Donc on part de la dernière ligne : Range("A65536")

End(xlUp) permet de se déplacer à la fin de la zone de l'objet Range prédéfini, avec une direction déterminée par Up (vers le haut). C'est comme si tu appuyais sur les touches Ctrl+Flèche Haut. Tu atteins donc la dernière cellule utilisée dans la colonne A à coup sûr puisque tu es parti du plus bas possible.

Offset(1, 0) permet de décaler la cellule d'une ligne et de 0 colonne, afin de descendre sur la première ligne se trouvant en dessous de la dernière ligne utilisée.

Euh... c'est plus clair ?.. ;))

m@rina
11
alainjjb
Messages postés
761
Date d'inscription
jeudi 17 mai 2007
Statut
Membre
Dernière intervention
7 mars 2022
107
27 juin 2008 à 08:33
Bonjour m@rina,
merci beaucoup pour ces explications. Si avec ça je n'ai tjs pas compris je me remets au crayon et au papier.
Bonne journée à toi
Alain
0
débutant vba .. mais je me soigne !
21 févr. 2012 à 10:35
merci beaucoup pour ces éclaircissements !!
0
Merci infiniment pour la clarté et concision!
0
yannou1456
Messages postés
22
Date d'inscription
mercredi 25 novembre 2009
Statut
Membre
Dernière intervention
16 février 2010
2
1 déc. 2009 à 18:29
Si jamais tu lis ces lignes MERCI BEAUCOUP m@rina!!!!!!!!!!!!!!!
2
m@rina
Messages postés
17467
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
2 juillet 2022
10 928
1 déc. 2009 à 23:23
Oui, j'ai bien lu !! ;))
De rien ! :D
Si cela a pu te dépanner, c'est le principal ! ;)

m@rina
0
Merci pour l'explication très claire, que Dieu te bénisse ...
0
franchement m@rina, je te remercie et j'aimerai savoir si tu as un blog ou autre où tu communiques ton savoir VBA ! quand je commence à peine, et j'aurai sans doute besoin de tes lumières !
0
m@rina
Messages postés
17467
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
2 juillet 2022
10 928
3 juil. 2015 à 15:20
Bonjour,

Il y a énormément de sites sur le VBA d'Excel. Perso, mon site ne traite "que" de Word et de PowerPoint (http://faqword.com), car ces logiciels ont beaucoup moins d'aficionados !!

Pour Excel, en particulier, tu trouveras plein de choses (entre autres) chez Excelabo (http://excelabo.net/ et surtout plein plein d'exemples VBA, avec des classeurs à télécharger.
Et si ça ne suffit pas, fais un tour sur la page des liens (http://www.excelabo.net/web/sites_francophones) où tu trouveras plein de sites à propos d'Excel et du VBA.

Et puis bien entendu, tu peux poser tes questions ici, où tu trouveras d'excellents excelliens prêts à t'aider.

m@rina
0