Recalculer la feuille tant qu'une condition n'est pas satisfaite.

raskarKapak

XLDnaute Nouveau
Bonsoir à tous,

Je me présente à vous car je suis quelques peu très énervé contre excel (pardonnez moi, mais voilà 2 heures que je ne cesse de presser la touche F9 pour qu'il recalcule ma feuille).

Dans le cadre de mes TPE j'ai simulé 1000 séries de 150 lancers d'un dé. Ensuite j'ai compté le nombre de 1, de 2, etc... Puis pour chacune des 1000 séries je prend le minimum (admettons le 1,2,3,5 et 6 sont tombés 26 fois chacun, le 4 20 fois il me retourne 20). Puis je prend le minimum des minimums. Et je dois m'arranger pour que ce minimum ne soit pas strictement inférieur à 13. Je sais que c'est possible, la probabilité n'est pas nul donc cela arrivera! Mais c'est très long. Donc je cherche un moyen pour qu'il recalcule la feuille tanat que cette condition n'est pas satisfaite.

Mais je suis débutant avec excel, et alors vba on oublie.

D'avance merci de votre aide.

Kevin

PS: Cela va vous sembler con mais est-ce possible de redimensionner en largeur toutes les cellules de ma feuille?

PS2: J'utilise excel 2007 (peut-être que c'est utile)
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Recalculer la feuille tant qu'une condition n'est pas satisfaite.

Bonsoir RaskarKapak :),
Donc dans le cadre de tes Terminaux de Paiement Electronique (TPE, pour moi, c'est ça...), tu souhaites faire de la stat sur des lancements de dés (je te filerai pas ma CB... :D)
Tu veux donc faire suffisament de calculs pour tomber sur le résultat qui t'intéresse, mais tu ne veux pas utiliser de VBA...
A l'impossible nul n'est tenu, mais ne t'attends pas à beaucoup de réponse en écartant vba dans un simulation pour atteindre une cible...
Si tu changes d'avis, fait nous le savoir ;).
Bon courage en attendant (attention à la crampe sur F9) :cool:
 

Kotov

XLDnaute Impliqué
Re : Recalculer la feuille tant qu'une condition n'est pas satisfaite.

Bonsoir raskarKapak,

Voici dans un premier temps une macro en VBA qui va te calculer tes 1000 x 150 tirages en quelques secondes sur la feuille "A" et te propose automatiquement tes stats sur la feuille "B"

Code:
Sub Tirage()
Dim r&, c&
Dim T(5)
Application.Calculation = xlManual
Sheets("A").Activate
For r = 1 To 1000
    For c = 1 To 150
        Cells(r, c) = Int((6 * Rnd) + 1)
    Next
Next
Application.Calculate
For r = 1 To 1000
    For c = 1 To 150
        i = Cells(r, c)
        T(i - 1) = T(i - 1) + 1
        Sheets("B").Cells(r, i) = T(i - 1)
    Next
Erase T
Next
End Sub

A chaque fois que tu cliques sur le bouton rouge, tes 1000 X 150 tirages se calculent.
Je te joins le fichier (format Excel 2007) et réfléchis à ta demande pour l'histoire du minimum des minimum qui doit être supérieur à 13
Je comprends que pour chacun de tes 1000 x150 tirages, tu continues tant que le minimum des minimum est inférieur à 14.
Est-ce bien celà ?

A +
Kotov
 

Pièces jointes

  • Tirage.xlsm
    18.6 KB · Affichages: 46
  • Tirage.xlsm
    18.6 KB · Affichages: 48
  • Tirage.xlsm
    18.6 KB · Affichages: 49

Kotov

XLDnaute Impliqué
Re : Recalculer la feuille tant qu'une condition n'est pas satisfaite.

Re,
et bonsoir JNP ;)

Voici une macro qui doit répondre à tes attentes.
Comme le signale JNP, sans VBA, c'est la crampe assurée sur F9.

Voici le code :
Code:
Sub Tirage()
Dim r&, c&
Dim T(5)
Sheets("B").Cells(1, 8)=0
NewTirage:
Application.Calculation = xlManual
Sheets("A").Activate
For r = 1 To 1000
    For c = 1 To 150
        Cells(r, c) = Int((6 * Rnd) + 1)
    Next
Next

For r = 1 To 1000
    For c = 1 To 150
        i = Cells(r, c)
        T(i - 1) = T(i - 1) + 1
        Sheets("B").Cells(r, i) = T(i - 1)
    Next
Erase T
Next
Sheets("B").Activate
For r = 1 To 1000
For c = 1 To 6
    If Cells(r, c) < 13 Then
        Sheets("B").Cells(1, 8) = Sheets("B").Cells(1, 8) + 1
        GoTo NewTirage
    End If
Next c
Next r
Sheets("B").Cells(1, 9) = " tirages successifs pour atteindre l'objectif"
MsgBox CStr(Sheets("B").Cells(1, 8)) & Sheets("B").Cells(1, 9)
Application.Calculate
End Sub

Je joins également le fichier définitif (version Excel 2007) mais ATTENTION, ATTENTION !!!
Contrairement à ma première macro ou les 1000 x 150 tirages s'effectuaient UNE SEULE FOIS, dans cette macro ci, il s'agit d'une boucle qui effectue ces 1000 x 150 tirages autant de fois que le minimum des minimum n'est pas au moins égal à 13.
Ca peut donc tourner longtemps, j'ai prévu un message qui t'avisera que l'objectif est atteint.
J'ai ajouté un compteur de tentatives, et je suis curieux de connaître le minimum de tentatives que tu auras trouvé.


A+
Kotov
 

Pièces jointes

  • Tirage.xlsm
    20.4 KB · Affichages: 48
  • Tirage.xlsm
    20.4 KB · Affichages: 51
  • Tirage.xlsm
    20.4 KB · Affichages: 55
Dernière édition:

Kotov

XLDnaute Impliqué
Re : Recalculer la feuille tant qu'une condition n'est pas satisfaite.

...
Et pour les personnes ne disposant pas d'Excel 2007, je joins une version compatible avec les versions antérieures.

Je renouvelle toutefois tmes appels à la prudence :
Ne connaissant pas les probabilités pour que la condition se réalise, il est possible que la macro tourne un bon moment.

Rappel important :
Pour sortir d'une macro qui tourne en boucle, faire Ctrl+Pause


Bonne soirée
Kotov
 

Pièces jointes

  • Tirage.xls
    40.5 KB · Affichages: 58
  • Tirage.xls
    40.5 KB · Affichages: 55
  • Tirage.xls
    40.5 KB · Affichages: 54

Statistiques des forums

Discussions
312 203
Messages
2 086 184
Membres
103 152
dernier inscrit
Karibu