Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Trouver la dernière ligne d'une feuille

  • Initiateur de la discussion Initiateur de la discussion Hugues
  • 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 !

Hugues

XLDnaute Impliqué
Bonjour Le forum

Je souhaiterais connaitre le code VBA afin de connaître la dernière ligne dans une feuille sachant que je ne peux pas prendre comme référence une colonne précise.
Certaine fois la dernière donnée est dans la colonne A, d'autre fois en B, ... .
La dernière colonne pouvant être renseignée est la H.

Avez vous une idée sur le sujet ?

Merci par avance,

Hugues
 
Re : Trouver la dernière ligne d'une feuille

Re,

allez, tant qu'on y est, pour la première ligne et la première colonne :
Code:
MsgBox Cells.Find("*", Cells(Rows.Count, Columns.Count), xlValues, , 1, 1, 0).Row
MsgBox Cells.Find("*", Cells(Rows.Count, Columns.Count), xlValues, , 2, 1, 0).Column
 
Re : Trouver la dernière ligne d'une feuille

Bonjour à tous.

Intéressant le test de rapidité. Curieux, on gagne très peu en prenant UsedRange à la place de Cells. Mais... quand même un peu...

Partant du principe que si dans une macro on a besoin de connaître la dernière ligne c'est toujours dans le but de faire quelque chose avec une plage de cellules allant jusqu'à cette ligne,
et que dans ces conditions c'est idiot de ne pas calculer carrément la plage sur laquelle on a à travailler,
voici l'état actuel de ma fonction :
VB:
Function PlageÀPartirDe(ByVal PlageDép As Range, Optional ByVal PlagExam As Range = Nothing) As Range
Dim F As Worksheet, LMax As Long, CMax As Long, NbL As Long, NbC As Long
On Error GoTo RienTrouvé
Set F = PlageDép.Worksheet: If PlagExam Is Nothing Then Set PlagExam = F.UsedRange
LMax = PlagExam.Find("*", F.Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row
CMax = PlagExam.Find("*", F.Cells(1, 1), xlValues, xlWhole, xlByColumns, xlPrevious).Column
On Error GoTo 0
NbL = LMax - PlageDép.Row + 1: If NbL < 1 Then GoTo CEstToutVide
NbC = CMax - PlageDép.Column + 1: If NbC < 1 Then GoTo CEstToutVide
Set PlageÀPartirDe = PlageDép.Resize(NbL, NbC)
Exit Function
RienTrouvé: Resume CEstToutVide
CEstToutVide: Set PlageÀPartirDe = Nothing
End Function
Cordialement.
 
Dernière édition:
Re : Trouver la dernière ligne d'une feuille

Bonjour le Forum

Il serait intéressant, que les propositions suggérées, soient intégrées dans le programme de test, afin d'augmenter le choix des differents tests.
Parfois ,on à aussi besoin de connaitre la derniere cellule pour ajouter des données à un tableau ou agrandir une base de données.

@Dranreb
Je te propose, si tu en trouve le temps et l'envie, d'ajouter ta fonction dans le test.
Cela pourrait m'être utile pour du travaux ultérieurs.

D'avance Merci

Salutations à tous
 
Re : Trouver la dernière ligne d'une feuille

J'ai effectivement rajouté ces instructions en fin du test:
VB:
A = Timer
For iA = 1 To Cells(3, 2)
With Application: Dim R As Range
num = ActiveSheet.UsedRange.Find("*", Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row 'Dranreb
End With
Next iA
Cells(9, 4) = Timer - A
Mais comme dit, le gain est faible par rapport à la solution Pierrot93 xlValues
et aurait tendance à égaler la Pierrot93 xlFormulas, qui peut donner un autre résultat.
Cordialement.
 
Re : Trouver la dernière ligne d'une feuille

rebonjour tous 🙂🙂🙂🙂🙂
je me pose la question les tests sont t'il representatif de la réalite???
on va chercher une fois la derniere ligne en régle génerale non!!!
en reprenant le test de l'ami néné06🙂🙂 si je tape 10 a la place de 1000 dans tout les methôdes on reste < au centieme
de plus je crois bien que l'utilisation de FIND a repetiton cela ralentit le proccesus
en utilsant avec l'instruction SET mieux & liberer a la fin du code "nothing"
je me rappel plus j'avais vu cela??? a mediter
par contre la reflexion de l'ami Dranreb 🙂🙂 est interssante utiliser UsedRange a la place de cells
cela pose pas de pb.. avec formule renvoyant "vide"
Code:
MsgBox Feuil1.UsedRange.Find("*", , , , , xlPrevious).Row
 
Re : Trouver la dernière ligne d'une feuille

Bonsoir à toutes et tous

Voici une dernière version du test avec en plus des formules prises sur le TUTO proposé par Kiki29.

Bonne soirée à tous.
 
- 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

Discussions similaires

Réponses
40
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…