Pour le fun : Nb valeurs

  • Initiateur de la discussion Initiateur de la discussion R@chid
  • Date de début Date de début

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 !

R@chid

XLDnaute Barbatruc
Supporter XLD
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.
Nb_Valeurs.jpg
 

Pièces jointes

Re : Pour le fun : Nb valeurs

Bonjour le Forum,
Bonjour l'ami R@chid,

une solution par sommeprod un peu cappilotractée et moi aussi juste pour le fun

Code:
=SOMMEPROD((((MOD(LIGNE(Zone);2)=0)*(MOD(COLONNE(Zone);2)=0))+((MOD(LIGNE(Zone);2)=1)*(MOD(COLONNE(Zone);2)=1)))*(ESTNUM(Zone)))

Amicalement
 
Re : Pour le fun : Nb valeurs

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 !
 
Dernière édition:
Re : Pour le fun : Nb valeurs

Bonjour à tous,

autre proposition par formule :
Code:
=SOMMEPROD(((Zone*(MOD(COLONNE(Zone);2)=MOD(LIGNE(Zone);2)))>0)*1)

eric

edit: tant qu'il n'y a pas de 0 dans la plage bien sûr
 
Dernière édition:
Re : Pour le fun : Nb valeurs

Bonjour Rachid

Un essai avec fonction personnalisée

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

Pièces jointes

Re : Pour le fun : Nb valeurs

Bonjour les amis,
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)))
@ + +
 
Re : Pour le fun : Nb valeurs

Bonjour R@chid, Jocelyn et les autres,

Une fonction VBA :

Code:
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
Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Re : Pour le fun : Nb valeurs

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
Résultat en "N4"

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
Résultat en "N7"
Bon dimanche
 

Pièces jointes

Re : Pour le fun : Nb valeurs

Re,

Ma solution VBA simplement traduite en formule Excel (matricielle) :

Code:
=SOMME((Zone<>"")*SI(MOD(LIGNE(Zone)-LIGNE(INDEX(Zone;1;1))+1;2);MOD(COLONNE(Zone)-COLONNE(INDEX(Zone;1;1))+1;2);1-MOD(COLONNE(Zone)-COLONNE(INDEX(Zone;1;1))+1;2)))
Fichier joint.

A+
 

Pièces jointes

- 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

Discussions similaires

Réponses
14
Affichages
484
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
903
Retour