Marches aléatoires

shad75

XLDnaute Nouveau
Bonjour a tous , il me faut réaliser une marche aléatoires sur excel pour un projet .
Je dois créer un espace limité par un rectangle intérieur et un rectangle extérieur
Mon projet doit contenir un Userform(formulaire). Le Userform pourra être affiché via une macro start . Le Userform a pour but de lancer les macros de mon projet. Il doit contenir au minimum un bouton permettant de lancer l'application du projet,un bouton quitter et une textbox permettant de demander une valeur à l'utilisateur.

Je ne m'y connais pas très bien en VBA et donc je ne vois pas par quoi commencer .
Si ca peut vous aider , parce que moi ca ne m'aide pas on a comme soutien ce code VBA.

Marche Aléatoire

A l'intérieur du rectangle déterminé par les points (1,1) et (m,m). La valeur de m est entrée par le formulaire ainsi que le nombre d’itérations.

Attention au tirage qui doit être uniforme. La fonction Rnd() (ou Rnd) crée une valeur uniforme entre 0 et 1.

L = CInt((Rnd * 4) + 0.5) crée une valeur 1,2,3,4 avec probabilité 1/4.
L = CInt((Rnd * 4) + 0.3) crée une valeur 1,2,3,4 avec probabilité non uniforme.

Le programme est décomposé en 2 boutons et un champs texte:

Private Sub CommandButton1_Click()
' Bouton d'itération i: entre 0 et m
' Bouton d'itération j: entre 0 et m
' On affiche le point i+1, j+1 dans le carré 1,m-1


i = Cells(2, 1)
j = Cells(1, 2)
k = 1
m = Cells(2, 2)
Do While k <= Cells(1, 1) + 1
' Tirage aléatoire
Randomize
L = CInt((Rnd * 4) + 0.5)
'
If L = 1 Then i = Abs(i - 1)
If L = 2 Then i = i + 1
If L = 3 Then j = Abs(j - 1)
If L = 4 Then j = j + 1

If i > m Then i = m - 1
If j > m Then j = m - 1
Cells(i + 1, j + 1).Select
With Selection.Interior
.ColorIndex = 8
.Pattern = xlSolid
End With

k = k + 1
Loop
Cells(2, 1) = i
Cells(1, 2) = j

End Sub

Private Sub CommandButton2_Click()
' Bouton QUITTER
' Masquer Userform1
UserForm1.Hide
' Récupérer la mem. occupée par userform1
Unload UserForm1

End Sub

Private Sub TextBox1_Change()
Cells(1, 1) = TextBox1.Value
End Sub

Private Sub TextBox2_Change()
Cells(2, 2) = TextBox2.Value
End Sub
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 379
Messages
2 087 765
Membres
103 662
dernier inscrit
rterterert