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

Le
JP
Bonjour,

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

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

Je règle mon problème actuellement en comptant les lignes avec:

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

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

Merci pour le conseil.

JP
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #25744232
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
---------------------------------------------------------------
MichD
Le #25744222
OUPS, il manque le "End Sub" comme dernière ligne à la procédure.

MichD
---------------------------------------------------------------
JP
MichD
Le #25744692
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
---------------------------------------------------------------
Publicité
Poster une réponse
Anonyme