MGO
XLDnaute Nouveau
Bonjour,
Je suis prof de maths et relativement néophyte sous VBA. J'ai essayé de créer une macro permettent de simuler un jeu de franc-carreau pour étudier les probabilités en 3ème. Cette macro, certainement améliorable, avait le mérite de tourner parfaitement sur Excel 2003.
Voici le principe:
On lance une pièce de monnaie sur un quadrillage et on s'intéresse à la probabilité que la pièce intercepte une ligne du quadrillage.
Or l'été dernier, je suis passé Excel 2007 (gratuité oblige), et cette macro présente le problème suivant : elle fait les calculs correctement, mais ma pièce ne se déplace pas à chaque lancer, alors qu'elle changeait de position auparavant sous Excel 2003.
J'aimerais bien que mes élèves voient la pièce se déplacer à chaque fois... et surtout j'aimerais savoir ce qui cloche.
merci par avance.
Voici le code :
Sub franccarreau()
Dim x, y, z, k, l, m, n
z = 0
n = InputBox("Entrez le nombre de tirages à simuler", "Jeu de Franc-carreau", , 5000, 5000)
If n = "" Then Exit Sub
For i = 1 To n
x = 10 * Rnd()
y = 10 * Rnd()
m = Int(5 * Rnd())
l = Int(5 * Rnd())
If x > 1 And x < 9 Then
If y > 1 And y < 9 Then
z = z + 1
End If
End If
ActiveSheet.Shapes("Oval 6").Select
With Selection
.Left = 10 * x + 100 * m - 10
.Top = 10 * y + 100 * l - 10
End With
Cells(12, 8).Value = z
Cells(i, 20).Value = z / i
pause (Cells(8, 8).Value)
Next
Cells(13, 8).Value = n
Cells(14, 8).Value = 100 * z / n
Cells(19, 8).Value = z + Cells(19, 8).Value
Cells(20, 8).Value = n + Cells(20, 8).Value
Cells(21, 8).Value = 100 * Cells(19, 8).Value / Cells(20, 8).Value
Cells(4 + Cells(23, 8).Value, 10).Value = 100 * z / n
Cells(23, 8).Value = Cells(23, 8).Value + 1 '
End Sub
Je suis prof de maths et relativement néophyte sous VBA. J'ai essayé de créer une macro permettent de simuler un jeu de franc-carreau pour étudier les probabilités en 3ème. Cette macro, certainement améliorable, avait le mérite de tourner parfaitement sur Excel 2003.
Voici le principe:
On lance une pièce de monnaie sur un quadrillage et on s'intéresse à la probabilité que la pièce intercepte une ligne du quadrillage.
Or l'été dernier, je suis passé Excel 2007 (gratuité oblige), et cette macro présente le problème suivant : elle fait les calculs correctement, mais ma pièce ne se déplace pas à chaque lancer, alors qu'elle changeait de position auparavant sous Excel 2003.
J'aimerais bien que mes élèves voient la pièce se déplacer à chaque fois... et surtout j'aimerais savoir ce qui cloche.
merci par avance.
Voici le code :
Sub franccarreau()
Dim x, y, z, k, l, m, n
z = 0
n = InputBox("Entrez le nombre de tirages à simuler", "Jeu de Franc-carreau", , 5000, 5000)
If n = "" Then Exit Sub
For i = 1 To n
x = 10 * Rnd()
y = 10 * Rnd()
m = Int(5 * Rnd())
l = Int(5 * Rnd())
If x > 1 And x < 9 Then
If y > 1 And y < 9 Then
z = z + 1
End If
End If
ActiveSheet.Shapes("Oval 6").Select
With Selection
.Left = 10 * x + 100 * m - 10
.Top = 10 * y + 100 * l - 10
End With
Cells(12, 8).Value = z
Cells(i, 20).Value = z / i
pause (Cells(8, 8).Value)
Next
Cells(13, 8).Value = n
Cells(14, 8).Value = 100 * z / n
Cells(19, 8).Value = z + Cells(19, 8).Value
Cells(20, 8).Value = n + Cells(20, 8).Value
Cells(21, 8).Value = 100 * Cells(19, 8).Value / Cells(20, 8).Value
Cells(4 + Cells(23, 8).Value, 10).Value = 100 * z / n
Cells(23, 8).Value = Cells(23, 8).Value + 1 '
End Sub