Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

compter le nombre de ligne dans une plage de données

4 réponses
Avatar
JP
Bonjour,

j'utilise la fonction Application.CountA(Range("B1:B25"))pour compter le no=
mbre de ligne dans la plage ("B1:B25").=20
Le r=E9sultat obtenu est toujours 25 car j'ai des formules dans cette plage=
de donn=E9es.

Que faut-il ajouter pour exclure les cellules contenant des formules?

Je r=E8gle mon probl=E8me actuellement en comptant les lignes avec:

Dim c As Range
For Each c In Sheets("feuil1").Range("A12:A36")
If c <> "" Then
a =3D a + 1
End If
Next

Ce n'est pas top, il doit y avoir mieux.

Merci pour le conseil.

JP

4 réponses

Avatar
MichD
Bonjour,

En supposant que toutes les cellules de la plage A1:A5 contiennent
toutes des formules et que tu veux compter seulement le nombre de
cellules qui retournent une valeur.

'-----------------------------------
Sub test()
Dim F As Long, N As Long, Nb As Long
With Worksheets("Feuil1")
With .Range("A1:A5")
F = .SpecialCells(xlCellTypeFormulas).Count
N = Application.CountIf(.Cells, "")
Nb = F - N
End With
End With
MsgBox Nb
'-----------------------------------

X compte le nombre de cellules qui contient soit du texte ou des nombres
ignorant les formules même si ces dernières retournent une valeur différente
de ""



MichD
---------------------------------------------------------------
Avatar
MichD
OUPS, il manque le "End Sub" comme dernière ligne à la procédure.

MichD
---------------------------------------------------------------
Avatar
JP
Merci Denis.

JP
Avatar
MichD
Comme toutes les cellules contiennent des formules...

J'aurais dû te proposer ceci...

'-----------------------------------
Sub test()
Dim Nb As Long
With Worksheets("Feuil1")
With .Range("A1:A5")
Nb = .Cells.Count - Application.CountIf(.Cells, "")
End With
End With
MsgBox Nb
End Sub
'-----------------------------------

MichD
---------------------------------------------------------------