XL 2016 Compter Le Nbre des Zéros Consecutifs à Condition > 9

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 !

Foufoudora

XLDnaute Occasionnel
Bonjour
Je cherche à compter le nombre des zéros consécutifs quand le nombre est supérieur à 9.
Si le nombre est Inférieur à 9 de rien faire.
Il faut que les Zéros soient consécutifs pour faire le calcul.
Voir fichier ci-joint.
Merci pour votre aide
Cordialement
 

Pièces jointes

Rebonsoir
D'abord merci pour ta patience.
Ce que je souhaite que le calcul devrait se faire par paquet de > 9 Zéros consecutifs.
Exemple:
Si j'ai une série est inférieur à 10 rien
Si j'ai une seule série de 10 ou plus le resultat est 10 ou plus
Si j'ai une série de 10 qui est > 9 et une serie de 9 ou inférieur ce qui implique un resultat égale à 10 Zéros.
Si j'ai une série de 10 qui est > 9 et une serie de 11 ce qui implique un resultat égale à 21 Zéros.
Il faut que la série depasse 9 pour qu'on puisse cumuler le resultat
J'espère d'etre plus clair que tout à l'heure
Cordialement
Modification : J'ai joint un Fichier
 

Pièces jointes

Dernière édition:
Re,

Ah enfin ! Avec les fichiers exemples on y comprend quelque chose, ce n'est pas trop tôt !!!

Plus question de MFC ou de formules matricielles, ça me paraît impossible.

Par fonction VBA c'est toujours très simple :
Code:
Function SommeZerosConsecutifs(r As Range, nref%)
Dim n%
For Each r In r
  If CStr(r) = "0" Then
    n = n + 1
  Else
    If n > nref Then SommeZerosConsecutifs = SommeZerosConsecutifs + n
    n = 0
  End If
Next
If SommeZerosConsecutifs = 0 Then SommeZerosConsecutifs = ""
End Function
Fichier joint.

Bonne nuit.
 

Pièces jointes

Bonsoir Cisco
Tu as tout à fait raison.
J'aurais du etre explicite depuis le début ca aurait evité de perdre beaucoup de votre temps.
Mais tellement c'etait clair dans ma petite cervelle 🙂
Concernant ta dernière version de fichier, de première vue ca a l'air fonctionné.
Je reviendrai vers vous assez rapidement après plusieurs testes.
Bien Cordialement
 
Re,

Réponse au post #34 : oui il manquait une ligne de code :
Code:
Function SommeZerosConsecutifs(r As Range, nref%)
Dim n%
For Each r In r
  If CStr(r) = "0" Then
    n = n + 1
  Else
    If n > nref Then SommeZerosConsecutifs = SommeZerosConsecutifs + n
    n = 0
  End If
Next
If n > nref Then SommeZerosConsecutifs = SommeZerosConsecutifs + n
If SommeZerosConsecutifs = 0 Then SommeZerosConsecutifs = ""
End Function
Fichier (2).

Re-bonne nuit.
 

Pièces jointes

Bonjour Foufoudora, le fil, le forum,

On peut créer une MFC sur la plage B5:AF8 en utilisant ces 2 fonctions :
Code:
Function ZerosConsecutifs(r As Range, nref%, Optional adr As Boolean)
Dim c As Range, n%
For Each c In r
  If CStr(c) = "0" Then
    n = n + 1
  Else
    If n > nref Then
      If adr Then
        ZerosConsecutifs = ZerosConsecutifs & "," & c(1, 1 - n).Resize(, n).Address(0, 0)
      Else
        ZerosConsecutifs = ZerosConsecutifs + n
      End If
    End If
    n = 0
  End If
Next
If adr Then
  If n > nref Then ZerosConsecutifs = ZerosConsecutifs & "," & r(r.Count + 1 - n).Resize(, n).Address(0, 0)
  ZerosConsecutifs = Mid(ZerosConsecutifs, 2)
Else
  If n > nref Then ZerosConsecutifs = ZerosConsecutifs + n
  If ZerosConsecutifs = 0 Then ZerosConsecutifs = ""
End If
End Function

Function MFC(c As Range, a$) As Boolean
MFC = Not Intersect(c, c.Parent.Range(a)) Is Nothing
End Function
Bonne journée.
 

Pièces jointes

Re,

Je découvre un phénomène étrange sur mon dernier fichier qui devrait intéresser les VBAistes.

Chez moi sur Win 10 - Excel 2013 la macro Workbook_Open (dans ThisWorkbook) ne se déclenche pas (sauf à la toute 1ère ouverture).

Par contre elle se déclenche bien si l'on supprime la MFC.

Et avec une macro Auto _Open (dans Module1) il n'y a aucun problème :
Code:
Sub Auto_Open() 'Workbook_Open dans ThisWorkbook ne fonctionne pas !!!
'MsgBox "OK" 'pour vérifier
ThisWorkbook.Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
Fichier (2).

Vraiment très très curieux n'est-ce pas ?

A+
 

Pièces jointes

Bonjour Le fil et le Forum
Merci beaucoup pour ces fichiers et votre implication. A première vu ca fonctionne.
Cisco : le fichier fonctionne à merveille.
Mapomme : idem
Job75 : le Fichier ZérosConsécutifs et MFC(1) fonctionne aussi et je n'ai pas eu de souci. (Win 10 et Excel 2016).
Rectification : en ouvrant le fichier la ligne "Janvier avec les 31 jours" ne sait pas afficher idem pour les colonnes AH et AI. tout est redevenu normal au saisi des données. Bizarre
Job75 : Si je voulais changer > 9 ou inferieur je changerais le "9" dans
=SIERREUR(AF$4-ZerosConsecutifs(B6:AF6;9);""). Merci par avance
Cisco et Mapomme : J'ai essayé de décortiquer vos formules et je pense que il suffit de changer aussi le 9 pour avoir une nouvelle variable. Bien sûr à revalider par Ctrl + Shift + Enter
Permettez-moi de revenir vers vous au cas où il y a des bugs inopinés.
Bien Cordialement et Bon dimanche.
 
Dernière édition:
Re,

Je découvre un phénomène étrange sur mon dernier fichier qui devrait intéresser les VBAistes.

Chez moi sur Win 10 - Excel 2013 la macro Workbook_Open (dans ThisWorkbook) ne se déclenche pas (sauf à la toute 1ère ouverture).

Par contre elle se déclenche bien si l'on supprime la MFC.

Et avec une macro Auto _Open (dans Module1) il n'y a aucun problème :
Code:
Sub Auto_Open() 'Workbook_Open dans ThisWorkbook ne fonctionne pas !!!
'MsgBox "OK" 'pour vérifier
ThisWorkbook.Saved = True 'évite l'invite à la fermeture si aucune modification
End Sub
Fichier (2).

Vraiment très très curieux n'est-ce pas ?

A+


bonjour tout le monde,

j'ai le même phénomène avec Win 7 64 et Excel 2007
 
Bonsoir à tous

La dernière proposition de Mapomme est bien plus intéressante que la mienne*.

On peut même la raccourcir en mettant B$4:AF$4 à la place de COLONNE(...).

Sa proposition renvoie une cellule vide s'il y a une cellule vide dans la ligne en cours. Si tu veux quand même un résultat, tu peux faire avec SI(""&B5:AF5="0" à la place de SI(B5:AF5=0.

@ plus

* En simplifiant, il a fait avec FREQUENCE (liste des positions des 0;liste des positions des 1), et moi avec FREQUENCE (listes des positions de 0; liste des positions des premiers et des derniers 0), nettement plus compliqué...
 

Pièces jointes

Dernière édition:
- 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
4
Affichages
100
  • Question Question
Microsoft 365 MFC dans tableau
Réponses
2
Affichages
231
Réponses
9
Affichages
603
Retour