Macro ok sous 2003, pas sous 2007

  • Initiateur de la discussion Initiateur de la discussion MGO
  • Date de début Date de début

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 !

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
 
Re : Macro ok sous 2003, pas sous 2007

Bonjour MGO

et bienvenue sur XLD

il manque semble-t-il une fonction ou Sub : pause

Neanmoins j'ai pu tester sous 2000 puis 2007 et le fonctionnement est le même dans chaque cas
voir les fichiers joints
As-tu pensé a bien nommer ta piece Oval 6 dans 2007 ?
Par ailleurs pour un veritable aléa Randomize doit preceder Rnd (voir l'aide d'Excel)
 

Pièces jointes

- 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

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
174
Réponses
5
Affichages
564
Réponses
1
Affichages
522
Réponses
0
Affichages
460
Réponses
9
Affichages
894
Réponses
10
Affichages
828
Retour