Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

se deplacer dans une cellule de facon aléatoire

4 réponses
Avatar
phil
Bonjour !
Bonne année et meilleurs voeux pour 2007.

J'ai besoin de votre aide pour debuter un petit programme .

j'aimerai faire deplacer une cellule de facon aléatoire dans un carré de
100 cellules de coté.Chaque deplacement sera d'une case a la fois.

Donc a chaque deplacement la cellule a une liberté de deplacement sur 4
positions ( a gauche , a droite , en haut , en bas).
Pour chaque deplacement dans la cellule active on pourrait ecrire dedans
afin de visualiser le deplacement effectué ( par exemple le caractère
de soulignement).

Le test devrait commencer au centre du carré et s arreter quand la
cellule active touche un des bords de ce carré .

Je pense qu'il faille utiliser une fonction rnd et "jouer" avec les
offset , mais je ne vois pas comment débuter l'ecriture du programme .

Je vous remercie de votre aide.

4 réponses

Avatar
Francois L
Bonjour !
Bonne année et meilleurs voeux pour 2007.

J'ai besoin de votre aide pour debuter un petit programme .

j'aimerai faire deplacer une cellule de facon aléatoire dans un carré de
100 cellules de coté.Chaque deplacement sera d'une case a la fois.

Donc a chaque deplacement la cellule a une liberté de deplacement sur 4
positions ( a gauche , a droite , en haut , en bas).
Pour chaque deplacement dans la cellule active on pourrait ecrire dedans
afin de visualiser le deplacement effectué ( par exemple le caractère
de soulignement).

Le test devrait commencer au centre du carré et s arreter quand la
cellule active touche un des bords de ce carré .




Bonjour,

Copie ce qui suit dans un module et déclenche la macro qui travaille sur
une plage de 100 * 100 à partir de A1

Sub aleat()
With Worksheets("Feuil1")
.Cells.Interior.ColorIndex = xlNone
.Cells(50, 50).Activate
debut:
a = Rnd
L = ActiveCell.Row
C = ActiveCell.Column
If a < 0.25 Then L = L + 1
If a >= 0.25 And a < 0.5 Then L = L - 1
If a >= 0.5 And a < 0.75 Then C = C - 1
If a >= 0.75 Then C = C + 1
If L > 100 Or C > 100 Or L = 0 Or C = 0 Then
Exit Sub
Else:
Worksheets("Feuil1").Cells(L, C).Activate
ActiveCell.Interior.ColorIndex = 6
GoTo debut
End If
End With
End Sub

--
François L
... en forme ce 1er janvier après avoir géré le réveillon de son fiston
N°2 !

Avatar
Sitting Hoax
Bonjour,
j'ai fait un petit fichier qui est visible dans www.Excelabo.net
http://www.excelabo.net/moteurs/compteclic.php?nom=ld-chemin
qui semble correspondre en partie à ce que tu veux faire,
le curseur se déplace aléatoirement dans les cellules (inutilement certes
;-)))
regarde les macros et adapte les à ce que tu veux faire.
Amicalement
SIesting Hoax
(qui vous souhaite une bonne année 2007)



"phil" a écrit dans le message de news:
4598b6cb$0$5093$
Bonjour !
Bonne année et meilleurs voeux pour 2007.

J'ai besoin de votre aide pour debuter un petit programme .

j'aimerai faire deplacer une cellule de facon aléatoire dans un carré de
100 cellules de coté.Chaque deplacement sera d'une case a la fois.

Donc a chaque deplacement la cellule a une liberté de deplacement sur 4
positions ( a gauche , a droite , en haut , en bas).
Pour chaque deplacement dans la cellule active on pourrait ecrire dedans
afin de visualiser le deplacement effectué ( par exemple le caractère de
soulignement).

Le test devrait commencer au centre du carré et s arreter quand la
cellule active touche un des bords de ce carré .

Je pense qu'il faille utiliser une fonction rnd et "jouer" avec les offset
, mais je ne vois pas comment débuter l'ecriture du programme .

Je vous remercie de votre aide.


Avatar
phil
Merci a vous deux , ! Cela fonctionne parfaitement.

Ensuite il me vient deux autres questions
1)Comment compter le nombre total de deplacement avant que le cuseur ne
s'arrete sur un bord ?
2) comment reecrire la même macro mais qui pourra cette fois-ci gerer
le rebond de la cellule afin qu'elle reparte de facon aleatoire ?


Merci



Bonjour !
Bonne année et meilleurs voeux pour 2007.

J'ai besoin de votre aide pour debuter un petit programme .

j'aimerai faire deplacer une cellule de facon aléatoire dans un carré
de 100 cellules de coté.Chaque deplacement sera d'une case a la fois.

Donc a chaque deplacement la cellule a une liberté de deplacement sur
4 positions ( a gauche , a droite , en haut , en bas).
Pour chaque deplacement dans la cellule active on pourrait ecrire
dedans afin de visualiser le deplacement effectué ( par exemple le
caractère de soulignement).

Le test devrait commencer au centre du carré et s arreter quand la
cellule active touche un des bords de ce carré .




Bonjour,

Copie ce qui suit dans un module et déclenche la macro qui travaille sur
une plage de 100 * 100 à partir de A1

Sub aleat()
With Worksheets("Feuil1")
..Cells.Interior.ColorIndex = xlNone
..Cells(50, 50).Activate
debut:
a = Rnd
L = ActiveCell.Row
C = ActiveCell.Column
If a < 0.25 Then L = L + 1
If a >= 0.25 And a < 0.5 Then L = L - 1
If a >= 0.5 And a < 0.75 Then C = C - 1
If a >= 0.75 Then C = C + 1
If L > 100 Or C > 100 Or L = 0 Or C = 0 Then
Exit Sub
Else:
Worksheets("Feuil1").Cells(L, C).Activate
ActiveCell.Interior.ColorIndex = 6
GoTo debut
End If
End With
End Sub




Avatar
Modeste
Bonsour "phil"
j'aimerai faire deplacer une cellule de facon aléatoire dans un carré de
100 cellules de coté.Chaque deplacement sera d'une case a la fois.

Donc a chaque deplacement la cellule a une liberté de deplacement sur 4
positions ( a gauche , a droite , en haut , en bas).
Pour chaque deplacement dans la cellule active on pourrait ecrire dedans
afin de visualiser le deplacement effectué ( par exemple le caractère de
soulignement).


voir un exemple là :
http://excelabo.net/moteurs/compteclic.php?nom=gd-minos