Compter le nombre de cellules consécutives égales à 0

-JMAX22-

XLDnaute Nouveau
Bonsoir,

j'aurais besoin de votre aide

J'aimerai trouver une formule qui me permette de compter le nombre de cellules consécutives égale à zéro dans une meme colonne. (un peu comme les tableaux d'écart dans le turf :p)

merci pour votre aide et vos commentaires
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Compter le nombre de cellules consécutives égales à 0

Bonjour -JMAX22- et bienvenu :)

Un essai avec la formule en B2 à tirer vers le bas:
Code:
=SI(ET(A2=0;OU(ESTVIDE(A3);A3<>0));NB.SI(A$2:A2;0)-SOMME(B$1:B1);"")
 

Pièces jointes

  • Compter zéros consécutifs V1.xlsx
    10.1 KB · Affichages: 481

-JMAX22-

XLDnaute Nouveau
Re : Compter le nombre de cellules consécutives égales à 0

Bonjour -JMAX22- et bienvenu :)

Un essai avec la formule en B2 à tirer vers le bas:
Code:
=SI(ET(A2=0;OU(ESTVIDE(A3);A3<>0));NB.SI(A$2:A2;0)-SOMME(B$1:B1);"")

Bonjour,

Nickel, c'est ce que je voulais.

Sinon, encore une petite question (ou faut-il que je crée un autre post :confused:), comment faire pour compter le nombre de cellules conséctives différentes de 0.

Merci
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Compter le nombre de cellules consécutives égales à 0

Bonjour -JMAX22-,

Pour la même chose avec les cellules différentes de 0, essayez cette formule en B2 à copier vers le bas (à tester par vos soins).
Code:
=SI(ET(A2<>0;OU(ESTVIDE(A3);A3=0));NB.SI(A$2:A2;"<>0")-SOMME(B$1:B1);"")

NB: une cellule vide est considérée comme différente de 0.

Edit : correction cellule vide
 
Dernière édition:

-JMAX22-

XLDnaute Nouveau
Re : Compter le nombre de cellules consécutives égales à 0

Bonjour -JMAX22-,

Pour la même chose avec les cellules différentes de 0, essayez cette formule en B2 à copier vers le bas (à tester par vos soins).
Code:
=SI(ET(A2<>0;OU(ESTVIDE(A3);A3=0));NB.SI(A$2:A2;"<>0")-SOMME(B$1:B1);"")

NB: une cellule vide est considérée comme égale à 0.

Cool, ça marche

Encore merci
 

homeran

XLDnaute Nouveau
Re : Compter le nombre de cellules consécutives égales à 0

Bonjour -JMAX22-,

Pour la même chose avec les cellules différentes de 0, essayez cette formule en B2 à copier vers le bas (à tester par vos soins).
Code:
=SI(ET(A2<>0;OU(ESTVIDE(A3);A3=0));NB.SI(A$2:A2;"<>0")-SOMME(B$1:B1);"")

NB: une cellule vide est considérée comme différente de 0.

Edit : correction cellule vide

Salut, @mapomme et @JMAX22-

Pourrais tu expliquer ta formule pour que je puisse la comprendre un peu mieux. De plus, @mapomme ta réponse m'a bien aidé mais il me manque encore quelques infos dans cette formule en ce qui me concerne.

Dans mon fichier excel, j'ai une colonne avec que des 0 et des 1 qui corespondent à des variations positives et négatives pour les 0. Dans ta formule il y a bien un calcul de nombre de cellule consécutive mais ce calcul n'est fait que pour la dernière cellule, j'aimerais qu'il y ai un calcul à chaque cellule. c'est à dire que au lieux d'avoir des cellules vides, j'aimerais voir le résultat par exemple 5 (fois le 0 a la date 25 novembre), 4 (fois le 0 au 24 novembre), 3 ( au 23 novembre) 2 ( fois le 0 au 22 novembre) et 1 au 21 novembre puis ensuite 6 ( par exemple pour le chiffre 1 du 20 au 14 novembre) puis 5 ( du 19 au 14) et ainsi de suite avec toujours un résultat affiché de soit le nombre de 0 qui précéde ou alors le nombre de 1 dans la même formule ou encore mieux une formule ou je n'ai pas besoin de 0 ou 1 et ou je peux utiliser < ou > à une certaine variation.

Merci d'avance
 

Pièces jointes

  • compter 0 et 1 consécutifs.xlsx
    173.5 KB · Affichages: 14

homeran

XLDnaute Nouveau
Salut @mapomme , d'abord merci beaucoup pour ta réponse. Je sais pas trop comment ce site fonctionne, je sais pas si tu reçois cette réponse par mail ou sur le site ( j'ai peur que tu ne me réponde pas :) ). cependant la formule 1 ne marche pas si à la place de la colonne A et B j'utilise la colonne F et G comme tu peux le voir dans la feuille 3 (ou peut être que j'ai mal recopié la formule).

J'aime bien ta formule 1 mais le soucis c'est que je ne peux pas différencier les variations positifs des variations négatifs ( les 1 (variations positives) et les 0 (variation négatives)). Je sais pas s'il est possible de mettre des couleur verts pour les nombres consécutifs des 1 et une couleur rouge pour les nombres consécutifs des 0. Ou alors il faudrait que j'utilise la formule 2 pour ne pas avoir de nombre consécutifs pour les négatifs comme tu l'as fait. Est il possible de différencier les deux avec une couleur ?

Ensuite comme tu peut le voir dans la colonne 1, j'ai des dates et au fur et a mesure du temps j'aimerais insérer des lignes de temps et donnée entre la ligne 1 et 2. Je sais pas si ta formule 1 pourrait avoir un résultat dans l'ordre inverse soit à la si lundi mardi et mercredi j'ai une variation positif soit un 1 alors pour mercredi 3 janvier il doit afficher 3 (derniers jours positifs avec couleur vert), pour mardi 2 janvier il doit afficher 2 en vert et lundi 1 janvier il doit afficher 1 ansi de suite.

Dans la colonne H de la feuille 3 je vais mettre en manuelle ce que je souhaite qu'il y ai d'affiché, si tu peux voir comment automatisé ce que je veux avec une formule.

Ps j'avais des 0 et 1 parce que au départ j'ai fait des règles de supérieur à 1 % en vert, de 0 à 1 en jaune et négatif en rouge ou même deux couleurs juste vert et rouge ça me va au dessus de 1 % vert et en dessous rouge mais je n'arrivais pas à comptabiliser le nombre de cellule et c'est pour ça que j'ai mis des 0 et 1. Est il possible de les comtabilisé sans les 0 et 1 mais plus tout avec des cases ou alors avec des chiffres en couleur avec plusieurs critère si possible ? mais je ne pense pas. Idéal serait que plusieurs critère soit par exemple 4 ( variation de <-1 en rouge; 0 à -1 en rose; 0 à 1 en orange et >1 en vert) avec 4 couleurs différents et a chaque fois qu'il y a changement de couleur alors il y aura un comptage consécutif avec le jour le plus récent dans la ligne la plus haute dans la feuille et donc le jour le plus récent aura 3 ou 5 ou... jours consécutif du même critère. exemple parfait de ce que je voudrais en feuille 4.

Je t'en demande beaucoup, ça serait super cool si tu pouvais me débloquer tous ça. récap ( formule 1 ne marche pas en feuille 3, comptage inverse par rapport a la chronologie ( le plus récent = le comptage le plus élevé) avec couleur vert et rouge et enfin si 4 critère avec couleur différent ( ou alors chaque critère peut être égale à un chiffre) feuille 4.

En pièce joint le doc avec V1 avec ajout de feuille 3 et 4. Serait il possible d'avoir ton adresse email stp.

Merci d'avance.
 

Pièces jointes

  • homeran- compter 0 et 1 consécutifs- v1.xlsx
    567.2 KB · Affichages: 8

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @homeran,

Pour ce que j'en ai compris. J'ai abandonné les formules pour du VBA.
Le code se trouve dans le module de la feuille nommée "Feuil4".

La mise à jour se déclenche quand :
  • on clique sur le bouton Hop !
  • ou si on modifie une valeur de la colonne B
nota : je ne me suis pas préoccupé du temps d'exécution. On peut sans doute faire plus rapide si vous le demandez.

Le code :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Intersect(Columns("b:b"), Target) Is Nothing Then CompterColorier
End Sub

Sub CompterColorier()
Dim rouge, rose, orange, vert
Dim derlig, t, i&, ref0, ref, n

   Application.ScreenUpdating = False
   rouge = RGB(255, 0, 0): rose = RGB(255, 100, 255): orange = RGB(50, 100, 250): vert = RGB(0, 200, 100)
   derlig = Application.Match(9E+99, Columns("b:b"), 1)
   t = Range("b1:b" & derlig + 1)

   ref0 = ""
   For i = UBound(t) - 1 To 2 Step -1
      If t(i, 1) < -1 / 100 Then ref = rouge Else If t(i, 1) < 0 Then ref = rose Else If t(i, 1) < 1 / 100 Then ref = orange Else ref = vert
      If ref = ref0 Then
         n = n + 1
         Cells(i, "c") = n: Cells(i, "c").Font.Bold = True
         Cells(i, "c").Font.Color = ref
      Else
         If t(i, 1) < -1 / 100 Then ref0 = rouge Else If t(i, 1) < 0 Then ref0 = rose Else If t(i, 1) < 1 / 100 Then ref0 = orange Else ref0 = vert
         n = 1
         Cells(i, "c") = n: Cells(i, "c").Font.Bold = True
         Cells(i, "c").Font.Color = ref0
      End If
   Next i
End Sub
 

Pièces jointes

  • homeran- compter variation par la fin- v1.xlsm
    43.5 KB · Affichages: 15
Dernière édition:

homeran

XLDnaute Nouveau
Re,

Voici la v1a. Elle agit comme la v1 mais en plus rapide.

On utilise un tableau t des valeurs en mémoire et la couleur des polices est appliquée par une MFC.

Merci beaucoup @mapomme je ne sais pas comment te remercier. c'est ce que je voulais. Pourrais tu m'aider encore un peux s'il te plait. Ce que tu à fait avec la macro c'est parfait.

J'ai ajouter trois autres feuilles ( close journalier, close hebdo et close mensuel). Dans ces feuilles il y a la colonne A (date), B(close journalier), C( la performance par rapport à la veille ( soit pour la cellule C2 : =(C2-C3)/C3 ), la colonne D avec la formule le VBA que tu as fait et enfin dans chacune de ces trois feuilles il y a la colonne C et D se répète sur 31 colonne avec a chaque fois une performance sur une valeur avec un en plus soit pour la cellule E2 on à la performance de J-2 donc E2= (B2-B4)/B4 E3=(B3-B5)/B5 et ainsi de suite pour avec J-2 puis J-3...et a chaque fois la formule critère qui va avec la performance.
Pourriez s'il vous plait me faire une macro pour les colonnes à partir de la colonne C soit automatique. J'aimerais garder la colonne A et B pour a chaque fois insérer les donnée puis ensuite avoir la macro pour que de la colonne C à la colonne "performance J-31" ce soit automatique. Si possible la colonne C (performance) E(performance) soit aussi en couleur avec les même critère que la colonne nombre consécutif.

Les colonne C et D ( en couleur par rapport au critère) pour la feuille close journalier
Pour la feuille feuille close hebdomadaire on pourrai mettre des critères plus élevé soit (<-2.5%, -2,5 à 0, 0 à 2,5 et >2,5)
Pour la feuille close mensuel critère : <-4, -4 à 0, 0 à 4 et >4
( Rq : j'ai aussi mis trois feuille d'exemple que je vais débuter en manuelle pour que tu puisse voir)
S'il est complique d'automatiser les colonnes performances car entre chaque colonne de performance J-1 à J-2 à j-1 il y a chaque fois le colonne critère nombre consécutif alors je pense que peux être toutes les colonnes performance a la suite des une et des autres puis ensuite toutes les colonne critère consécutifs qui se suive soit pour la fiche close journalier les 31 premières colonnes seront des performances qui se suivent en J-1 à J-31 puis les colonnes qui suivent seront les 31 autres colonnes critère qui suivent les 31 première colonnes de perf (comme dans la feuille exemple colonne qui se suivent).
Dans la feuille close hebdo il y a 52 colonnes perf et 52 colonnes critère nombre.
Dans le feuille close mensuel il y a 60 colonnes perf et 60 colonnes critère nombre.


ça me serait d'une très grande aide si tu pouvais m'aider sur ce fichier. Je ne sais pas comment te remercier @mapomme .
 

Pièces jointes

  • homeran- compter variation par la fin- v2.xlsm
    100.2 KB · Affichages: 8

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @homeran :),

Tout est écrit dans module1.

Dans ce module, on trouve trois fonctions qui lancent la même procédure CompterEtColorier(...) mais avec leurs propres paramètres de seuil. Ces procédures sont :
VB:
Sub LesJours()
   CompterEtColorier -1, 0, 1
End Sub

Sub LesSemaines()
   CompterEtColorier -2.5, 0, 2.5
End Sub

Sub LesMois()
   CompterEtColorier -4, 0, 4
End Sub
  • La première est associée au bouton Hop! de la feuille "Close journalier" avec les seuils journalier : -1, 0 , 1. Ces seuils doivent être rangés du plus petit au plus grand.
  • Pour le bouton Hop! de la feuille "Close hebdomadaire ", les seuils sont -2.5, 0, 2.5.
  • Pour le bouton Hop! de la feuille "Close mensuel", les seuils sont -4, 0, 4.
  • c'est dans ces trois procédures que vous pouvez modifier les seuils

On trouve ensuite dans Module, la procédure générale :
Sub CompterEtColorier(seuilRouge, seuilRose, SeuilBleu)

nota :
la méthode s'appuie sur les positions des colonnes.
  • Colonne A : les dates
  • Colonne B : le close de la date
  • Colonnes C, E, G, I, K, ... : les colonnes de calcul des variations
  • Colonnes D, F, H, J, L, ... : Les colonnes de comptage des suites de variation de même seuil.

Remarque : je n'ai fait que quelques vérifications de base. A vous de bien tester...
 

Pièces jointes

  • homeran- compter variation par la fin- v2.xlsm
    59.2 KB · Affichages: 10

homeran

XLDnaute Nouveau
Bonjour @mapomme c'est super sympa de votre de m'avoir aidé. Ce que vous avez fait c'est automatique et ça marche super bien. J'aimerais savoir votre prénom si cela n'est pas trop indiscret.
Ce que vous avez fait, c'est cool et ça marche mais je me rends compte d'une erreur de ma pa part dont je n'avais pas pris en compte.
Ce bouton Hop ! il définit les mêmes critères généraux sur la feuille de calcul ce qui est très bien mais je me rend compte que sur la feuille de calcul journalier ou hebdo par exemple, les colonnes avec des performances avec J-Jour plus long ne devrait pas avoir le même critère que la colonne J-1. Mon objectif serait de pouvoir insérer n'importe quel valeur de marché dans différent feuille pour ensuite pouvoir comparer le nombre de vert en chauque valeur de marché. De ce fait, De ce fait avoir un bouton général qui s'applique à toutes les colonnes c'est très bien mais les critères devrait être différents d'un J-50 (Critère plus élevé) à un J-1.

Serait il possible d'avoir deux différent fonctions supplémentaire à ce bouton actuel qui ne change pas:
- Ce bouton permettrais d'afficher une fenêtre pour que je puisse entrer ou sélectionner 5 valeurs :
-1ère valeur : serait un choix pour sélectionner entre "appliquer à toutes les colonnes" (de la feuille) ou "Appliquer à deux colonnes spécifique" (colonne performance et colonne critère).
- 2eme valeur : serait de pouvoir entrer soit "toutes colonnes" ou entrer "les deux lettres (ou les noms des deux colonnes)
- 3eme valeur : pouvoir entrer un critère en chiffre associée à la couleur vert
- 4eme valeur : pouvoir entrer un critère en chiffre associée à la couleur bleu
- 5eme valeur : pouvoir entrer un critère en chiffre associée à la couleur rose
- 6eme valeur : pouvoir entrer un critère en chiffre associée à la couleur rouge

En effet, j'aimerais garder le bouton hop pour pouvoir modifier dans le module si besoin général mais j'aimerais aussi avoir un bouton ou une fenêtre qui s'affiche où je peux spécifier différents critères applicable à toutes ou à deux colonnes spécifique.

Merci d'avance @mapomme
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 850
dernier inscrit
Danigra