Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Bonjour @ tous,
Comment on peut calculer le nombre de valeurs dans une plage 😛🙄???
Je veux le nombre de valeurs dans les cellules en rouge, attention la couleur ici est juste pour vous montrer ce que je veux, mais en réalité on n'a que du blanc.
Voir PJ pour mieux comprendre.
Bonjour R@chid.
Je te propose ce code à mettre dans un module ordinaire:
VB:
Option Explicit
Function NbValDamier(Plage As Range, Optional ByVal Impair As Long = 0) As Long
Dim T() As Variant, L As Long, C As Long
T = Plage.Value
For L = 1 To UBound(T, 1): For C = 1 To UBound(T, 2)
If (L + C) Mod 2 = Impair Then If Not IsEmpty(T(L, C)) Then NbValDamier = NbValDamier + 1
Next C: Next L
End Function
Ceci rend en effet 119 :
Code:
=NbValDamier(Zone)
Edit: J'aurais du me douter qu'il y aurait foule pour répondre à R@chid !
NB:Elle prend en compte la position de la zone . Si on devait généraliser reviens nous le dire
NB bis : Compte tenu de tes capacités en formule , je ne doute pas qu tu puisses la traduire en formule pure (a partir de ligne() et colonne())
Edit: Arf je suis sérieusement à la bourre sur ce coup !!!!!
Bonjour @ tous,
Salut Eriiic,
Idem sauf que j'ai fait un peu longue avec LIGNE(INDIRECT()) pour éviter le cas de suppression ou de l'ajout d'une colonne ou ligne...
@ + +
Je suis encore loin d'avoir tous les réflexes, ça ne m'a même pas effleuré l'esprit... ;-)
Mais du fait de la plage nommée on n'est pas un peu à l'abri ?
Je suis encore loin d'avoir tous les réflexes, ça ne m'a même pas effleuré l'esprit... ;-)
Mais du fait de la plage nommée on n'est pas un peu à l'abri ?
Je parle de l'ajout suppression au dessus ou à gauche de la zone...
tu peux insérer une ligne au dessus ou une colonne à gauche pour tester d’où l’intérêt de d'utiliser souvent LIGNE(INDIRECT("1:"&LIGNES(ZONE)))
@ + +
Function Compte(zone As Range)
Dim ncol%, i&, p As Byte, j%
ncol = zone.Columns.Count
For i = 1 To zone.Rows.Count
p = i Mod 2
For j = 1 To ncol
If zone(i, j) <> "" Then Compte = Compte + IIf(p, j Mod 2, 1 - (j Mod 2))
Next
Next
End Function
Bonjour @ tous,
Merci pour vos participations,
j'ai bien aimé les propositions en VBA, mais j'ai encore du temps pour bien comprendre.
Encore pour le fun sur ce fil...
@ + +
Bonjour le Forum
Voilà ma petite contribution.
2 variantes
Function NbSiCouleurFond(champ As Range, couleurFond, condition)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleurFond Then
If Evaluate(Str(c.Value) & condition) Then
If IsNumeric(c.Value) Then temp = temp + 1
End If
End If
Next c
NbSiCouleurFond = temp
End Function
Sub compte()
Dim c, temp
temp = 0
For Each c In [Zone]
If c.Interior.ColorIndex = 40 Then
If Evaluate(Str(c.Value) & condition) Then
If IsNumeric(c.Value) Then temp = temp + 1
End If
End If
Next c
Range("N7").Value = temp
MsgBox temp
End Sub
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD