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

Position de la dernière cellule non vide

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

Tatiana29

XLDnaute Occasionnel
Salut,

j'ai dans ma colonne A
N° ligne contenu
1 nom
2 toto
3 roberto
4
5
6 albert
7 benoit 17

Et j'utilise cette syntaxe!
Application.WorksheetFunction.CountA(Range("A:A")) =>me donne 5 alors que je veux 7
mais cela compte que les cellules pleines et ne tient pas compte des cellules vides
Est ce que sait quel code tient compte des cellules vides?
 
Re : Position de la dernière cellule non vide

Bonjour.
Il y en a plusieurs. Le plus utilisé c'est Cells(Rows.Count, 1).End(xlUp).Row
Mais ça ne tiendrait pas compte de cellules vides à la fin.
Si d'autres colonnes sont impliquées pour déterminer la fin vous pourriez utiliser ces fonctions qui rendent des Range
VB:
Function PlgUti(ByVal PlageDép As Range, Optional ByVal PlagExam As Range = Nothing) As Range
Rem. Cherche la partie utilisée d'une plage, c'est à dire celle qui s'étend jusqu'à la dernière cellule renseignée de plus qu'une chaîne vide.
'    PlageDép: Plage de départ. Seule la 1ère cellule spécifiée est prise en compte pour la déterminer, et suffit donc pour une utilisation VBA.
'            Pour utilisation en formules, il est néanmoins nécessaire de spécifier la plage depuis celle ci jusqu'au reste des colonnes entières.
'    PlageExam: Plus grande plage susceptible de contenir la plage cherchée.
'            Facultatif: UsedRange assumé par défaut.
Dim LMax As Long, CMax As Long, Nbl As Long, NbC As Long
On Error GoTo RienTrouvé
If PlagExam Is Nothing Then Set PlagExam = PlageDép.Worksheet.UsedRange
LMax = PlagExam.Find("*", PlagExam.Cells(1, 1), xlValues, xlWhole, xlByRows, xlPrevious).Row
CMax = PlagExam.Find("*", PlagExam.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 PlgUti = PlageDép.Resize(Nbl, NbC)
Exit Function
RienTrouvé: Resume CEstToutVide
CEstToutVide: Set PlgUti = Nothing
End Function

Function ColUti(ByVal PlageDép As Range) As Range
Rem. Comme PlgUti, mais la plage rendue se limitera aux colonnes couvertes par la plage de départ spécifiée
Set ColUti = PlgUti(PlageDép, Intersect(PlageDép.Worksheet.UsedRange, PlageDép.EntireColumn))
End Function
Cordialement.
 
Dernière édition:
Re : Position de la dernière cellule non vide

Bonjour Tatiana, Dranreb

Normalement la formule est:

Code:
=LIGNES(A1:A6)

Cela doit être Rose (Rows) en VBA.

Mais après comme dit Dranreb, cela dépend de ce que tu veux.
 
Dernière édition:
Re : Position de la dernière cellule non vide

Bojour MJ13
La solution qui a ma préférence c'est de donner des noms aux plages.
Alors oui en Excel: =LIGNES(Toto)
En VBA: Application.[Toto].Rows.Count
encore qu'il serait préférable de remplacer Application par le CodeName de la feuille qui contient la plage.
À +
 
Dernière édition:
Re : Position de la dernière cellule non vide

Bonjour à tous,

Une idée avec la syntaxe :

* En 2003
Code:
Range("B65535").End(xlUp).Row - 1

* En 2007 ou 2010
Code:
Range("B1048576").End(xlUp).Row - 1

Cordialement
 
Re : Position de la dernière cellule non vide

j'ai testé ce code avec la solutio mais ca bloque!
je veux récupérer la valeur dans la variable Nord1 que j'ai bien déclarer!

ActiveWorkbook.Sheets("NORD-N").Activate
'Nord1 = Application.WorksheetFunction.CountA(Range("A:A")) + 1
Nord1 = Range("A1048576").End(xlUp).Row - 1
 
Re : Position de la dernière cellule non vide

Ety j'ai testé ca aussi mais ca bug!
ActiveWorkbook.Sheets("NORD-N").Activate
'Nord1 = Application.WorksheetFunction.CountA(Range("A:A")) + 1
Nord1 = Application.WorksheetFunction.Rows.Count
😡
 
Re : Position de la dernière cellule non vide

Je crois qu'il y a une confusion à cause de ma dernière intervention. Je ne parlais pas de noms de variables Range.
Je parlais de Insertion, Nom, Définir dans Excel.
À par ça , oui vous testez tout et n'importe quoi, sauf ce qu'on vous a dit !
Joignez une version simplifiée de votre classeur, ce sera plus simple.
À +
 
Dernière édition:
Re : Position de la dernière cellule non vide

bonjour tous🙂🙂🙂🙂🙂🙂
exemple


pas oblige d'activer la feuille pour ecrire dedans ou connaitre les infos

Code:
Sub es()
'numero de la ligne de la cellule pleine de la colonne A
MsgBox Sheets("ta feuille").Range("a" & Rows.Count).End(xlUp).Row

'valeur de la derniere cellule pleine de la colonne A
MsgBox Sheets("ta feuille").Range("a" & Rows.Count).End(xlUp)

'ecrire dans la derniere cellule pleine de la colonne a
Sheets("ta feuille").Range("a" & Rows.Count).End(xlUp) = "toi"

'ecrire apres la derniere cellule pleine de la colonne a
Sheets("ta feuille").Range("a" & Rows.Count).End(xlUp)(2) = "moi"
End Sub

ps pas vu ton dernier fichier

bien sur connaitre la prémiere vide

Code:
MsgBox Sheets("ta feuille").Range("a" & Rows.Count).End(xlUp).Row + 1
 
Dernière édition:
Re : Position de la dernière cellule non vide

Voulez vous re-joindre au format xls plutot que xlsm ? De toute façon dans un xlsx elle ne passent pas. Je ne vois pas sur quel critère on pourrait obtenir 8 à moins de se référer très précisément à $A$1:$A$8. La toute dernière ligne renseignée est la 7.

P.S. Mais puisque vous êtes en Excel 2007, essayez de convertir en tableau la partie utile de votre liste. Il y a parait il des possibilités intéressantes de ce coté qui éviteraient les End(xlUp) à tours de bras.

À ce propos, pour ma culture personnelle, quelqu'un voudrait il avoir la gentillesse de me communiquer l'aide sur l'objet ListObject, surtout les méthodes et propriétés. Merci d'avance.
 
Dernière édition:
Re : Position de la dernière cellule non vide

Re à tous

Pour Dranreb, mais sur XL2007 😱:

 
- 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

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