• Initiateur de la discussion Initiateur de la discussion shad75
  • 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 !

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
 
- 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

Réponses
4
Affichages
177
Réponses
8
Affichages
233
Réponses
5
Affichages
237
Réponses
8
Affichages
468
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
144
Réponses
10
Affichages
281
Réponses
2
Affichages
202
Réponses
3
Affichages
193
Réponses
3
Affichages
665
Réponses
2
Affichages
124
Retour