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

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?
 

Dranreb

XLDnaute Barbatruc
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:

MJ13

XLDnaute Barbatruc
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:

Dranreb

XLDnaute Barbatruc
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:

hbenalia

XLDnaute Occasionnel
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
 

Tatiana29

XLDnaute Occasionnel
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
 

Tatiana29

XLDnaute Occasionnel
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
 

Dranreb

XLDnaute Barbatruc
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:

Tatiana29

XLDnaute Occasionnel
Re : Position de la dernière cellule non vide

Voici une version simplifiée!
j'avoue là je suis un peu perdue!
 

Pièces jointes

  • exemple fichier.xlsx
    11.9 KB · Affichages: 165
  • exemple fichier.xlsx
    11.9 KB · Affichages: 203
  • exemple fichier.xlsx
    11.9 KB · Affichages: 198

laetitia90

XLDnaute Barbatruc
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:

Dranreb

XLDnaute Barbatruc
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:

MJ13

XLDnaute Barbatruc
Re : Position de la dernière cellule non vide

Re à tous

Pour Dranreb, mais sur XL2007 :

 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…