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:

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
:mad:
 

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!:cool:
 

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 :eek::

Membres de l'objet ListObject
Cet objet représente un tableau dans une feuille de calcul.
Méthodes
Nom
Description
methods.gif

Delete
Cette méthode supprime l'objet ListObject et efface les données des cellules dans la feuille de calcul.
methods.gif

ExportToVisio
Exporte un objet ListObject dans Visio.
methods.gif

Publish
Cette méthode publie l'objet ListObject sur un serveur exécutant Microsoft Windows SharePoint Services.
methods.gif

Refresh
Cette méthode récupère les données et le schéma actifs pour la liste sur le serveur exécutant Microsoft Windows SharePoint Services. Elle s'utilise uniquement avec des listes liées à un site SharePoint. Si le site SharePoint n'est pas disponible, l'appel à cette méthode renvoie une erreur.
methods.gif

Resize
La méthode Resize autorise le redimensionnement d'un objet ListObject sur une nouvelle plage. Aucune cellule n'est insérée ni supprimée.
methods.gif

Unlink
Cette méthode supprime la liaison entre une liste et un site Microsoft Windows SharePoint Services. Elle renvoie la valeur Nothing.
methods.gif

Unlist
Cette méthode supprime la fonctionnalité de liste d'un objet ListObject. Après avoir utilisé cette méthode, la plage de cellules qui composait la liste redevient une plage de données ordinaire.

Propriétés
Nom
Description
properties.gif

Active
Renvoie une valeur Boolean indiquant si un objet ListObject d'une feuille de calcul est actif, c'est-à-dire si la cellule active se trouve dans la plage de cet objet ListObject. Argument de type Boolean en lecture seule.
properties.gif

Application
Utilisée sans qualificateur d'objet, cette propriété renvoie un objet Application qui représente l'application Microsoft Excel. Lorsqu'elle est utilisée avec un qualificateur d'objet, elle renvoie un objet Application représentant l'application ayant créé l'objet spécifié (vous pouvez utiliser cette propriété avec un objet OLE Automation qui renvoie l'application d'origine de cet objet). En lecture seule.
properties.gif

AutoFilter
Cette méthode filtre une liste à l'aide du filtre automatique. Propriété en lecture seule.
properties.gif

Comment
Cette propriété renvoie ou définit le commentaire associé à l'objet liste. Type de données String en lecture-écriture.
properties.gif

DataBodyRange
Cette propriété renvoie un objet Range qui représente la plage de valeurs, à l'exception de la ligne d'en-tête dans une table. Type de données en lecture seule.
properties.gif

DisplayName
Renvoie ou définit le nom d'affichage de l'objet ListObject spécifié. Type de données String en lecture/écriture.
properties.gif

DisplayRightToLeft
Cette propriété a la valeur True si l'objet ListObject s'affiche de droite à gauche, plutôt que de gauche à droite. Elle a la valeur False si cet objet s'affiche de gauche à droite. Type de données Boolean en lecture seule.
properties.gif

HeaderRowRange
Renvoie un objet Range qui représente la plage de la ligne d'en-tête d'une liste. Objet de type Range en lecture seule.
properties.gif

InsertRowRange
Renvoie un objet Range représentant l'option Insérer une ligne, le cas échéant, d'un objet ListObject spécifié. Objet de type Range en lecture seule.
properties.gif

ListColumns
Renvoie une collection ListColumns qui représente toutes les colonnes d'un objet ListObject. Propriété en lecture seule.
properties.gif

ListRows
Renvoie un objet ListRows qui représente toutes les lignes de données dans l'objet ListObject. Propriété en lecture seule.
properties.gif

Name
Renvoie ou définit une valeur String, qui représente le nom de l'objet ListObject.
properties.gif

Parent
Cette propriété renvoie l'objet parent de l'objet spécifié. En lecture seule.
properties.gif

QueryTable
Cette propriété renvoie l'objet QueryTable qui contient le lien de l'objet ListObject au serveur de liste. Type de données en lecture seule.
properties.gif

Range
Cette propriété renvoie un objet Range qui représente la plage à laquelle s'applique l'objet de liste spécifié dans la liste ci-avant.
properties.gif

SharePointURL
Renvoie un argument de type String représentant l'URL de la liste SharePoint pour un objet ListObject donné. Type de données String en lecture seule.
properties.gif

ShowAutoFilter
Cette propriété renvoie un objet Boolean pour indiquer si le filtre automatique doit être affiché. Type de données Boolean en lecture-écriture.
properties.gif

ShowHeaders
Renvoie ou définit si les informations de l'en-tête doivent être affichées pour l'objet ListObject spécifié. Type de données Boolean en lecture-écriture.
properties.gif

ShowTableStyleColumnStripes
Renvoie ou définit si le style de tableau Colonnes impaires est utilisé pour l'objet ListObject spécifié. Type de données Boolean en lecture-écriture.
properties.gif

ShowTableStyleFirstColumn
Renvoie ou définit si la première colonne doit être affichée pour l'objet ListObject spécifié. Type de données Boolean en lecture-écriture.
properties.gif

ShowTableStyleLastColumn
Renvoie ou définit si la dernière colonne doit être affichée pour l'objet ListObject spécifié. Type de données Boolean en lecture-écriture.
properties.gif

ShowTableStyleRowStripes
Renvoie ou définit si le style de tableau Lignes impaires est utilisé pour l'objet ListObject spécifié. Type de données Boolean en lecture-écriture.
properties.gif

ShowTotals
Cette propriété obtient ou définit un type de données Boolean pour indiquer si la ligne des totaux est visible. Type de données Boolean en lecture-écriture.
properties.gif

Sort
Récupère ou définit la colonne ou les colonnes du tri et l'ordre de tri pour la collection ListObject.
properties.gif

SourceType
Renvoie la valeur XlListObjectSourceType qui représente la source actuelle de la liste.
properties.gif

TableStyle
Récupère ou définit le style de tableau de l'objet ListObject spécifié. Type de données Variant en lecture/écriture.
properties.gif

TotalsRowRange
Cette propriété renvoie un objet de type Range représentant la ligne des totaux de l'objet ListObject spécifié, le cas échéant. Propriété en lecture seule.
properties.gif

XmlMap
Cette propriété renvoie un objet XmlMap représentant le mappage de schéma utilisé pour la table spécifiée. Propriété en lecture seule.

 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 423
Membres
103 206
dernier inscrit
diambote