Créer un compteur automatique
Bonjour à tous
Je me permets de poser la question sur ce forum puisque je n'ais pas trouvé la réponse ailleurs et je suis bloqué
Voici mon problème :
Dans une cellule (A1), j'ai un nombre (que je vais appeler "x"), qui va varier plusieurs fois et prendre des valeurs différentes dans le temps.
Je voudrais, dans une autre cellule (B1), créer un "compteur automatique", qui compterait (automatiquement et de façon permanente), le nombre de fois où x a pris une valeur (que j'aurais choisis)
PAR EXEMPLE
Si x a pris les valeurs suivante : 1 ; 1 ; 2 ; 2 ; 2 ; 5 ; 5 ; 9 ; 9 ; 10 ; 11 ; 12
Je voudrais compter automatiquement le nombre de fois où x a pris la valeur " 2 "
Ainsi, dans la cellule B1 s'afficherait automatiquement le nombre " 3 ", puisque dans mon exemple, x a pris 'trois fois' la valeur " 2 ".
Existe-t-il une 'formule' que l'on pourrais insérer directement dans "B1" pour créer ce compteur ?
De même, est-il possible de compter le nombre de fois où x a pris une valeur négative ou positive ?
Bonjour,
A mettre dans le module de la feuille concernée :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "A1" Then Exit Sub
Select Case Target.Value
Case 2: Range("B1").Value = Range("B1").Value + 1
Case Is < 0: Range("C1").Value = Range("C1").Value + 1
Case Is > 0: Range("D1").Value = Range("D1").Value + 1
Case Is = 0: Range("E1").Value = Range("E1").Value + 1
End Select
End SubEn cellule B1 le nombre de fois le chiffre 2 (à adapter !), en C1 le nombre de fois une valeur négative, en D1 le nombre de fois une valeur positive et en E1 égale à 0
Merci pour cette réponse
Merci Theze pour votre réponse
Le code que vous m'avez envoyé fonctionne parfaitement lorsque je saisis directement une valeur quelconque dans la cellule A1
Le problème c'est que j'ai manqué de précision (et je m'en excuse) : la valeur inscrite dans "A1" ne va pas varier en fonction de ce que je saisis directement dedans, mais elle va varier en fonction de plusieurs paramètres qui sont autour
Ce code ne fonctionne donc pas puisqu'il n'est pas adapté à ma situation
Je vais essayer d'être plus précis, cette fois-ci en donnant un EXEMPLE et en joignant une feuille excel qui correspondrait à mon problème
L'exemple est le suivant :
À cinq reprises, on tire au sort un nombre entier compris entre 1 et 5
À chaque numéro est associé à un gain ou une perte d'argent
Chaque numéro a une certaine probabilité d'être tiré
Voici la feuille excel utilisée :
Dans une cellule (B15), on inscrit le gain (ou la perte) globale d'argent, après avoir effectué les 5 tirages
B15 peut donc être négative, positive ou nulle, en fonction du tirage aléatoire.
Est-il possible, dans les cellules B16, B17, B18 et B19, de compter (en permanence) automatiquement :
- Le nombre de fois où B15 a été négative
- Le nombre de fois où B15 a été positive
- Le nombre de fois où B15 a été nulle
- Le nombre de fois où B15 a été égale à un nombre quelconque (par exemple " 40 " ) ?
Merci d'avance pour les prochaines réponses
Bonsoir.
Voilà pour essai. Appuyer sur F9 et contrôler les résultats plusieurs fois.
Cordialement.
Bonsoir Ayari
Je vous remercie d'avoir répondu ; j'ai ouvert la pièce jointe que vous avez envoyé mais je n'ais pas bien compris les modification que vous y avez apportés
Encore une fois c'est peut-être moi qui ais manqué de précision
Je voudrais compter (de façon automatique) le nombre de fois où le gain (ou la perte) globale d'argent (la valeur inscrite en B15) a été négative (ou positive, ou égale à un certain nombre).
Il s'agit en fait d'une "simulation"
[ Pour "tester" ces tirages aléatoires un certains nombre de fois --> je "mets à jour" la feuille Excel en me plaçant sur une cellule vide, et j'appuis sur la touche "Suppr" : ainsi, je je peux renouveler l'expérience plusieurs fois , et le gain total (ou la perte totale) d'argent {la valeur qui se trouve en B15} se renouvelle, en fonction des cinq nouveaux tirages. ]
Par exemple :
Lors des 5 premier tirages : on perd 30€
Lors des 5 tirages suivant : on gagne 10€
Lors des 5 tirages suivant : on perd 27.50€
Lors des 5 tirages suivant : on ne perd ni ne gagne rien
Lors des 5 tirages suivant : on gagne 5€
Dans cet exemple :
En B16 je voudrais : {Nombre de fois où B15 a été négative} : " 2 "
En B17 je voudrais : {Nombre de fois où B15 a été positive} : " 2 "
En B18 je voudrais : {Nombre de fois où B15 a été nulle} : " 1 "
En B19 je voudrais : {Nombre de fois où B15 a été égale à 40} : " 0 "
Vous comprendrez alors que :
les valeurs situées en B16-17-18 et 19 sont des nombre entiers qui ne pourront faire que augmenter de "1 en 1"
Merci pour les prochaines réponses et pour votre aide
Bonjour,
Tu les entres où tes valeurs ? En C8:C12 ?
Il suffit d'adapter mon code en conséquence !
De plus, les fonctions utilisées retourne n'importe quoi comme valeurs à chaque re-calcul de la feuille.
Bonjour
Je suis désolé mais ici je ne visualise pas comment je peux adapter votre code
Et je ne comprends pas non plus pourquoi vous citez les cellules C8:C12 alors que ce ne sont pas des variables
C'est la valeur en "C15" qui varie et dont je souhaite étudier les variations
Si j'écris
"
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "C15" Then Exit Sub
Select Case Target.Value
Case 2: Range("B1").Value = Range("B1").Value + 1
Case Is < 0: Range("C1").Value = Range("C1").Value + 1
Case Is > 0: Range("D1").Value = Range("D1").Value + 1
Case Is = 0: Range("E1").Value = Range("E1").Value + 1
End Select
End Sub" dans le module, alors rien ne se passe dans les cellules B1 C1 D1 et E1 (même si C15 prend des valeurs différentes en fonction des tirages)
Votre code semble ne fonctionner que lorsque je saisis la valeur en C15 directement
Je suis désolé si je mets du temps à comprendre
Re,
Et je ne comprends pas non plus pourquoi vous citez les cellules C8:C12 alors que ce ne sont pas des variables
C'est la valeur en "C15" qui varie et dont je souhaite étudier les variations
En C15 tu as une formule "=K8*C8+K9*C9+K10*C10+K11*C11+K12*C12" donc, il n'existe aucune formule dans un classeur qui ne dépende pas de valeurs entrées en "dur" et les seules qui se trouvent dans ta feuille et qui seraient sensées être alimentées par tes soins sont celles situées en C8:C12, non ?
Oui d'accord
Si je comprends bien, les valeurs que je dois insérer dans le code sont uniquement celles qui sont "brut" (c'est à dire que j'aurai moi même saisis, et non obtenu à l'aide d'une formule ou d'une fonction) -
En somme, si dans le code j'utilise des cellules qui sont remplies par des fonctions (par exemple " = A1 + A2 "), alors ça ne marche pas
Il faut que j'utilise uniquement des cellules qui soient vide, ou remplis en "brut" par des valeurs que j'aurai directement saisies.
Mais tout ça ne m'aide pas à "adapter" le code
Bonjour à tous,
il n'existe aucune formule dans un classeur qui ne dépende pas de valeurs entrées en "dur"
sauf si utilisation de alea() par exemple.
Chipsou, tu ne crois pas qu'il serait temps de déposer ton fichier et que les devinettes finissent ?
eric
Bonjour Eric,
En disant ça, je voyais d'une manière générale car il y a aussi AUJOURDHUI(), MAINTENANT(), etc...
Quand Chipsou dit :
Par exemple :
Lors des 5 premier tirages : on perd 30€
Lors des 5 tirages suivant : on gagne 10€
Lors des 5 tirages suivant : on perd 27.50€
Lors des 5 tirages suivant : on ne perd ni ne gagne rien
Lors des 5 tirages suivant : on gagne 5€
ces sommes ne tombent pas du ciel ! Il faut bien qu'elles soient entrées quelque part dans des cellules d'où ma question :
Tu les entres où tes valeurs ? En C8:C12 ?
Il suffit d'adapter mon code en conséquence...
Oui, c'était juste une parenthèse, je ne pense pas non plus qu'il y en ait
C'est surtout qu'il a du mal à délivrer les bonnes infos malgré les questions et que maintenant sans son fichier ça risque de tourner en rond longtemps...
eric