OVH Cloud OVH Cloud

comptage de ligne

9 réponses
Avatar
Emcy
Bonjours,

En vba, je voudrais une fonction qui Compte le nombre de ligne qu'il y a
entre le début du document et la ligne vide suivante (le plus rapidement
possible)

Ex :
a
b
c
d

e
f

=> me donne comme résultat 4 (a, b, c, d)

9 réponses

Avatar
SL
Bonjour

Sub Macro1()
MsgBox (Range("A1").End(xlDown).Row)
End Sub

renverra 4 dans ton cas.
Stéphane
"Emcy" a écrit dans le message de news:
%
Bonjours,

En vba, je voudrais une fonction qui Compte le nombre de ligne qu'il y a
entre le début du document et la ligne vide suivante (le plus rapidement
possible)

Ex :
a
b
c
d

e
f

=> me donne comme résultat 4 (a, b, c, d)



Avatar
anonymousA
bonjour,

quelle que soit la cellule active

MsgBox Range(ActiveCell, ActiveCell.End(xlDown)).Cells.Count

à remplacer par activecell par cells(1,1) ou [A1] si nécessité de
prendre la cellule de départ A1

A+
Avatar
Philippe Noss
bonjour
par exemple
Sub compteligne()

If Not IsEmpty(ActiveCell) Then
If IsEmpty(ActiveCell.Offset(1, 0)) Then
MsgBox 1
Else
MsgBox Range(ActiveCell, ActiveCell.End(xlDown)).Count
End If
End If
MsgBox 0
End Sub

si la cellule active est la premiere ligne
sinon remplacer ActiveCell par l'adresse de la cellule par exemple
Range("A1")

sous forme de fonction personnalisée
Function ExoCompteligne(ByRef Cell)
ExoCompteligne = 0
If Not IsEmpty(Cell) Then
If IsEmpty(Cell.Offset(1, 0)) Then
ExoCompteligne = 1
Else
ExoCompteligne = Range(Cell, Cell.End(xlDown)).Count
End If
End If
End Function

Saisir bien sur =ExoCompteligne(A1) dans une cellule
(A1 par exemple)

Philippe NOSS
http://nossphil.perso.cegetel.net/exoutils.html
Avatar
Philippe Noss
AMHA les2 première réponses ne fonctionne pas si la cellule de
départ est vide ou si la cellule en dessous de celle de repart est
vide

A +

Philippe
Avatar
Emcy
ça ne marche pas completement : s'il n'y a qu'une cellule de rempli ou pas
du tout ça bug


"Philippe Noss" a écrit dans le message de news:

AMHA les2 première réponses ne fonctionne pas si la cellule de
départ est vide ou si la cellule en dessous de celle de repart est
vide

A +

Philippe
Avatar
michdenis
Bonjour Emcy,

Tu peux utiliser ceci :

A = Range(Range("A1"), Range("A" & Range("A:A").Find("").Row)).Rows.Count - 1


Salutations!




"Emcy" a écrit dans le message de news: %
ça ne marche pas completement : s'il n'y a qu'une cellule de rempli ou pas
du tout ça bug


"Philippe Noss" a écrit dans le message de news:

AMHA les2 première réponses ne fonctionne pas si la cellule de
départ est vide ou si la cellule en dessous de celle de repart est
vide

A +

Philippe
Avatar
Philippe Noss
Je corrige
Sub compteligne()

If Not IsEmpty(ActiveCell) Then
If IsEmpty(ActiveCell.Offset(1, 0)) Then
MsgBox 1
Else
MsgBox Range(ActiveCell, ActiveCell.End(xlDown)).Count
End If
'J'avais oublié le else
Else
MsgBox 0
End If
End Sub

Par contre la fonction fonctionne bien
Avatar
Emcy
merci à vous deux

"Philippe Noss" a écrit dans le message de news:

Je corrige
Sub compteligne()

If Not IsEmpty(ActiveCell) Then
If IsEmpty(ActiveCell.Offset(1, 0)) Then
MsgBox 1
Else
MsgBox Range(ActiveCell, ActiveCell.End(xlDown)).Count
End If
'J'avais oublié le else
Else
MsgBox 0
End If
End Sub

Par contre la fonction fonctionne bien
Avatar
Michel Pierron
Bonjour Emcy;
With Range("A1")
MsgBox IIf(.Value = "", 0, .CurrentRegion.Rows.Count)
End With

MP

"Emcy" a écrit dans le message de news:
#
Bonjours,

En vba, je voudrais une fonction qui Compte le nombre de ligne qu'il y a
entre le début du document et la ligne vide suivante (le plus rapidement
possible)

Ex :
a
b
c
d

e
f

=> me donne comme résultat 4 (a, b, c, d)