Enlever le contour du rectangle
Mettre le rectangle aprĂšs la barre verticale noire
L’Ă©largir de cette façon
Ajouter un autre rectangle
Enlever le contour du rectangle
Ălargir le rectangle de cette façon
Copier ce rectangle
Coller ce rectangle
Copier le encore jusqu’Ă obtenir 5 rectangles
Prendre le premier rectangle
Le copier
Le coller
faire un clic droit/Format de la forme…
Aller dans l’onglet taille et passer la hauteur Ă 3,86cm
Fermer cette fenĂȘtre
Mettre ce rectangle en noir
Copier ce rectangle
Coller le rectangle
Voici les 2 rectangle
Copier Ă nouveau, jusqu’Ă obtenir 5 rectangle noirs
Mettre chaque rectangles noirs sur les rectangles bleus (Ă des hauteurs diffĂ©rentes, mais pas trop diffĂ©rentes non plus…)
Mettre les rectangles noirs en blancs
Insérer un nouveau rectangle
Enlever le contour du rectangle
Mettre le rectangle en rouge
Faire un clic droit sur le rectangle rouge et cliquer sur Taille et propriétés
Mettre la hauteur Ă 2,06cm
Mettre la largeur Ă 1,98cm
Fermer la fenĂȘtre
Faire un clic droit sur l’onglet Format
Cliquer sur « Personnaliser le Ruban »
Vérifier que « Développeur » est bien coché
Cliquer sur OK
Aller dans l’onglet DĂ©veloppeur
Cliquer sur Insérer
Cliquer sur le bouton (le premier icone)
Cliquer sur OK
Mettre le bouton Ă cette position et faire un clic droit
Copier
Coller
Encore copier
Et coller
Positionner le bouton comme sur l’image
Quand tu cliques sur un bouton , tu ne peux pas le déplacer. Pour le déplacer : clic droit sur le bouton, puis bouton « échap » du clavier
Positionner un bouton au milieu
Agrandir le bouton
Pour renommer un bouton : clic droit sur le bouton, puis bouton « échap » du clavier, puis cliquer sur le texte. Renommer le bouton en « SAUTER »
Le bouton de gauche en « DEMARRER », le bouton de droite en « ARRETER »
Dans la partie qui va suivre, je vais renommer les Ă©lĂ©ments pour mieux mây retrouver
- Vous pouvez faire comme moi ou adapter les noms comme vous le voulez
- Je vais commencer par le premier grand rectangle que je vais renommer « cadre »
- Pour ne pas quâil y ai 2 Ă©lĂ©ments avec le mĂȘme nom pendant la phase de renommage, je vais rajouter un 0 sur chaque nom que je vais enlever par la suiteâŠ
Le rectangle vertical noir Ă droite (qui s’appelle actuellement « Rectangle1 », je le renomme « cadre ».
Pour renommer un Ă©lĂ©ment, il faut cliquer sur le cadre Ă gauche oĂč est inscrit le nom de l’Ă©lĂ©ment. Une fois le nouveau nom rentrĂ©, cliquer sur la touche « Entrer » du clavier pour valider le nom
Rectangle14 devient 0Rectangle14
Rectangle3 devient 0rectangle3
Je vais faire pareil pour tous les Ă©lĂ©ments (mĂȘme les boutons)
On voit que le Bouton4 devient 0Bouton4
Pour ne rien vous cacher, je modifie les nom pour quâils coĂŻncident avec le codage que jâavais dĂ©jĂ fait (et qui Ă permis de faire marcher le jeu que vous voyez au dĂ©but). Donc normalement, si vous renommez les Ă©lĂ©ments exactement comme je le fais et que vous reprenez exactement mon code vous aurez un jeu fonctionnelâŠ
Rectangle 5 (il y a un espace entre « Rectangle » et « 5 »)
Rectangle 1
Rectangle 2
Rectangle 3
Rectangle 4
Rectangle 16
Rectangle 15
Rectangle 11
Rectangle 12
Rectangle 13
Rectangle 14
Bouton 3
Bouton 2
Bouton 1
player
Maintenant la partie codage
- Dans la suite, je vais reprendre le code que jâai fait et vous expliquer toutes les lignes
Dans l’onglet DĂ©veloppeur, cliquer sur « Enregistrer une macro »
Cliquer sur OK
DĂ©placer le carrĂ© rouge (pour quâil y ai quelque chose dans la macro), ensuite, cliquer sur « ArrĂȘter l’enregistrement »
Cliquer sur « Macro »
Cliquer sur Modifier
Ouvrir le fichier texte (lien dans la description de la vidĂ©o) âŒâŒâŒâŒ
fichier texte : lien
Public ProchainChrono, Départ Sub Demarre() Départ = Timer() majChrono End Sub Sub aleatoire()
‘Initialiser le gĂ©nĂ©rateur de nombres alĂ©atoires
‘=> Randomize : Ă ajouter avant d’utiliser Rnd pour obtenir des valeurs complĂštement alĂ©atoires
Randomize
‘Nombre alĂ©atoire entier entre 1 et 50 :
nombre_aleatoire = Int((ActiveSheet.Shapes.Range(Array(« cadre »)).Height – ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Height) * Rnd)
Range(« A4 »).FormulaR1C1 = nombre_aleatoire
Range(« A18 »).FormulaR1C1 = ActiveSheet.Shapes.Range(Array(« player »)).Top ‘- ActiveSheet.Shapes.Range(Array(« player »)).Height
‘MsgBox nombre_aleatoire
End Sub
Sub majChrono()
‘Sheets(« Feuil1 »).[A1] = Format((Timer() – DĂ©part) / 3600 / 24, « hh:mm:ss »)
ProchainChrono = Now + TimeValue(« 00:00:1 »)
Application.OnTime ProchainChrono, « majChrono »
‘Fait avancer vers la gauche le rectangle1 de 15
ActiveSheet.Shapes.Range(Array(« Rectangle 1 »)).IncrementLeft -15
ActiveSheet.Shapes.Range(Array(« Rectangle 11 »)).IncrementLeft -15
‘Fait avancer vers la gauche le rectangle2 de 15
ActiveSheet.Shapes.Range(Array(« Rectangle 2 »)).IncrementLeft -15
ActiveSheet.Shapes.Range(Array(« Rectangle 12 »)).IncrementLeft -15
‘Fait avancer vers la gauche le rectangle3 de 15
ActiveSheet.Shapes.Range(Array(« Rectangle 3 »)).IncrementLeft -15
ActiveSheet.Shapes.Range(Array(« Rectangle 13 »)).IncrementLeft -15
‘Fait avancer vers la gauche le rectangle4 de 15
ActiveSheet.Shapes.Range(Array(« Rectangle 4 »)).IncrementLeft -15
ActiveSheet.Shapes.Range(Array(« Rectangle 14 »)).IncrementLeft -15
‘Fait avancer vers la gauche le rectangle5 de 15
ActiveSheet.Shapes.Range(Array(« Rectangle 5 »)).IncrementLeft -15
ActiveSheet.Shapes.Range(Array(« Rectangle 15 »)).IncrementLeft -15
‘Fait descendre le rectangle (player) de 30
ActiveSheet.Shapes.Range(Array(« player »)).IncrementTop 30
‘Affiche la position horizontale du rectangle
Range(« B1 »).FormulaR1C1 = ActiveSheet.Shapes.Range(Array(« Rectangle 1 »)).Left
‘Affiche la largeur du cadre
Range(« B2 »).FormulaR1C1 = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
‘Si le rectangle 1 dĂ©passe le cadre alors ça s’arrĂȘte
If ActiveSheet.Shapes.Range(Array(« Rectangle 1 »)).Left = 0 Then
ActiveSheet.Shapes.Range(Array(« Rectangle 1 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
ActiveSheet.Shapes.Range(Array(« Rectangle 11 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
‘Call Arret
End If
‘Si le rectangle 2 dĂ©passe le cadre alors ça s’arrĂȘte
If ActiveSheet.Shapes.Range(Array(« Rectangle 2 »)).Left = 0 Then
‘Call Arret
ActiveSheet.Shapes.Range(Array(« Rectangle 2 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
ActiveSheet.Shapes.Range(Array(« Rectangle 12 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
End If
‘Si le rectangle 3 dĂ©passe le cadre alors ça s’arrĂȘte
If ActiveSheet.Shapes.Range(Array(« Rectangle 3 »)).Left = 0 Then
‘Call Arret
ActiveSheet.Shapes.Range(Array(« Rectangle 3 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
ActiveSheet.Shapes.Range(Array(« Rectangle 13 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
End If
‘Si le rectangle 4 dĂ©passe le cadre alors ça s’arrĂȘte
If ActiveSheet.Shapes.Range(Array(« Rectangle 4 »)).Left = 0 Then
‘Call Arret
ActiveSheet.Shapes.Range(Array(« Rectangle 4 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
ActiveSheet.Shapes.Range(Array(« Rectangle 14 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
End If
‘Si le rectangle 5 dĂ©passe le cadre alors ça s’arrĂȘte
If ActiveSheet.Shapes.Range(Array(« Rectangle 5 »)).Left = 0 Then
‘Call Arret
ActiveSheet.Shapes.Range(Array(« Rectangle 5 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
ActiveSheet.Shapes.Range(Array(« Rectangle 15 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
End If
‘quand le rectangle 11 revient au dĂ©but il change de hauteur alĂ©atoirement
If ActiveSheet.Shapes.Range(Array(« Rectangle 11 »)).Left = 0 Then
ActiveSheet.Shapes.Range(Array(« Rectangle 11 »)).Top = Range(« A4 »).Text
End If
‘quand le rectangle 12 revient au dĂ©but il change de hauteur alĂ©atoirement
If ActiveSheet.Shapes.Range(Array(« Rectangle 12 »)).Left = 0 Then
ActiveSheet.Shapes.Range(Array(« Rectangle 12 »)).Top = Range(« A4 »).Text
End If
‘quand le rectangle 13 revient au dĂ©but il change de hauteur alĂ©atoirement
If ActiveSheet.Shapes.Range(Array(« Rectangle 13 »)).Left = 0 Then
ActiveSheet.Shapes.Range(Array(« Rectangle 13 »)).Top = Range(« A4 »).Text
End If
‘quand le rectangle 14 revient au dĂ©but il change de hauteur alĂ©atoirement
If ActiveSheet.Shapes.Range(Array(« Rectangle 14 »)).Left = 0 Then
ActiveSheet.Shapes.Range(Array(« Rectangle 14 »)).Top = Range(« A4 »).Text
End If
‘quand le rectangle 15 revient au dĂ©but il change de hauteur alĂ©atoirement
If ActiveSheet.Shapes.Range(Array(« Rectangle 15 »)).Left = 0 Then
ActiveSheet.Shapes.Range(Array(« Rectangle 15 »)).Top = Range(« A4 »).Text
End If
‘si le rectangle (player) toucle le bas t’as perdu
If ActiveSheet.Shapes.Range(Array(« player »)).Top + ActiveSheet.Shapes.Range(Array(« player »)).Height > ActiveSheet.Shapes.Range(Array(« cadre »)).Height Then
Call Arret
End If
‘si le rectangle (player) toucle les parois de rectangle 11 t’as perdu
If ActiveSheet.Shapes.Range(Array(« player »)).Top + ActiveSheet.Shapes.Range(Array(« player »)).Height > ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Height + ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Left Then
Call Arret
End If
End If
End If
If ActiveSheet.Shapes.Range(Array(« player »)).Top < ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Left Then
Call Arret
End If
End If
End If
‘si le rectangle (player) toucle les parois de rectangle 12 t’as perdu
If ActiveSheet.Shapes.Range(Array(« player »)).Top + ActiveSheet.Shapes.Range(Array(« player »)).Height > ActiveSheet.Shapes.Range(Array(« rectangle 12 »)).Height + ActiveSheet.Shapes.Range(Array(« rectangle 12 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 12 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 12 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 12 »)).Left Then
Call Arret
End If
End If
End If
If ActiveSheet.Shapes.Range(Array(« player »)).Top < ActiveSheet.Shapes.Range(Array(« rectangle 12 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 12 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 12 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 12 »)).Left Then
Call Arret
End If
End If
End If
‘si le rectangle (player) toucle les parois de rectangle 13 t’as perdu
If ActiveSheet.Shapes.Range(Array(« player »)).Top + ActiveSheet.Shapes.Range(Array(« player »)).Height > ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Height + ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Left Then
Call Arret
End If
End If
End If
If ActiveSheet.Shapes.Range(Array(« player »)).Top < ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Left Then
Call Arret
End If
End If
End If
‘si le rectangle (player) toucle les parois de rectangle 14 t’as perdu
If ActiveSheet.Shapes.Range(Array(« player »)).Top + ActiveSheet.Shapes.Range(Array(« player »)).Height > ActiveSheet.Shapes.Range(Array(« rectangle 14 »)).Height + ActiveSheet.Shapes.Range(Array(« rectangle 14 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 14 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 14 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 14 »)).Left Then
Call Arret
End If
End If
End If
If ActiveSheet.Shapes.Range(Array(« player »)).Top < ActiveSheet.Shapes.Range(Array(« rectangle 14 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 14 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 14 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 14 »)).Left Then
Call Arret
End If
End If
End If
‘si le rectangle (player) toucle les parois de rectangle 15 t’as perdu
If ActiveSheet.Shapes.Range(Array(« player »)).Top + ActiveSheet.Shapes.Range(Array(« player »)).Height > ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Height + ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Left Then
Call Arret
End If
End If
End If
If ActiveSheet.Shapes.Range(Array(« player »)).Top < ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Left Then
Call Arret
End If
End If
End If
Call aleatoire
Range(« A18 »).FormulaR1C1 = ActiveSheet.Shapes.Range(Array(« player »)).Top + ActiveSheet.Shapes.Range(Array(« player »)).Height
Range(« A19 »).FormulaR1C1 = ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Height + ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Top
Range(« A20 »).FormulaR1C1 = ActiveSheet.Shapes.Range(Array(« player »)).Left
Range(« A21 »).FormulaR1C1 = ActiveSheet.Shapes.Range(Array(« player »)).Top
Range(« A22 »).FormulaR1C1 = ActiveSheet.Shapes.Range(Array(« rectangle 11″)).Top
End Sub
Sub Arret()
On Error Resume Next
Application.OnTime ProchainChrono, Procedure:= »majChrono », Schedule:=False
MsgBox « Perdu »
End Sub
Sub Saut()
ActiveSheet.Shapes.Range(Array(« player »)).IncrementTop -15
End Sub
Sélectionner tout le texte présent dans la macro
Supprimer tout le texte
Coller tout le texte présent dans le fichier texte
Cliquer sur la disquette pour enregistrer
Quand on met du code dans un fichier Excel, il faut lâenregistrer dans un format particulier
Dans type de fichier, sélectionner « Classeur Excel (prenant en charge les macros) (*.xlsm)
Cliquer sur Enregistrer
Baisser cette fenĂȘtre pour retourner sue Excel
Faire un clic droit sur le bouton DEMARRER
Cliquer sur « Affecter une macro… »
Sélectionner « Demarre »
Cliquer sur OK
Faire un clic droit sur le bouton SAUTER
Cliquer sur « Affecter une macro »
Sélectionner « Saut »
Cliquer sur OK
Faire un clic droit sur le bouton ARRETER
Cliquer sur « Affecter une macro… »
Sélectionner « Arret »
Cliquer sur OK
Vous pouvez maintenant tester le jeu
On peut voir que des nombres se sont affichés à gauche, nous allons donc les cacher
Aller dans Acceuil et changer la couleur des caractĂšres pour les mettre en blanc
Nous allons maintenant personnaliser le carré rouge
Faire clic droit et cliquer sur « Format de la forme »
Dans remplissage, cliquer sur « Remplissage avec image ou texture »
Cliquer sur « Fichier »
Sélectionner une image
Cliquer sur Fermer
On voit que l’image est maintenant dans le carrĂ©
Explications du code :
Les parties en vert sont des commentaires (elles nâinfluent pas sur le code, elles servent Ă donner des indications sur le code ou Ă faire des tests)
Public ProchainChrono, Départ Sub Demarre() Départ = Timer() majChrono End Sub Sub aleatoire()
Et
Sub majChrono()
‘Sheets(« Feuil1 »).[A1] = Format((Timer() – DĂ©part) / 3600 / 24, « hh:mm:ss »)
ProchainChrono = Now + TimeValue(« 00:00:1 »)
Application.OnTime ProchainChrono, « majChrono »
Permet de faire avancer les colonnes automatiquement (possibilité de changer le délais). La partie du haut permet de lancer le chrono en cliquant sur le bouton et celle du bas permet de définir les paramÚtres.
Sub aleatoire()
‘Initialiser le gĂ©nĂ©rateur de nombres alĂ©atoires
‘=> Randomize : Ă ajouter avant d’utiliser Rnd pour obtenir des valeurs complĂštement alĂ©atoires
Randomize
‘Nombre alĂ©atoire entier entre 1 et 50 :
nombre_aleatoire = Int((ActiveSheet.Shapes.Range(Array(« cadre »)).Height – ActiveSheet.Shapes.Range(Array(« rectangle 11 »)).Height) * Rnd)
Permet de mettre le rectangle 11 Ă une hauteur alĂ©atoire (le rectangle 11 Ă©tant le premier rectangle blanc oĂč doit passager le joueur)
Range("A4").FormulaR1C1 = nombre_aleatoire Range("A18").FormulaR1C1 = ActiveSheet.Shapes.Range(Array("player")).Top '- ActiveSheet.Shapes.Range(Array("player")).Height 'MsgBox nombre_aleatoire
Dans la cellule A4 est mise cette valeur alĂ©atoire et dans la cellule A18 est mise la position du joueur (se sont les nombres que lâon voyait avant que je les mette en blanc)
'Fait avancer vers la gauche le rectangle1 de 15 ActiveSheet.Shapes.Range(Array("Rectangle 1")).IncrementLeft -15 ActiveSheet.Shapes.Range(Array("Rectangle 11")).IncrementLeft -15
‘Fait avancer vers la gauche le rectangle2 de 15
ActiveSheet.Shapes.Range(Array(« Rectangle 2 »)).IncrementLeft -15
ActiveSheet.Shapes.Range(Array(« Rectangle 12 »)).IncrementLeft -15
Les rectangles qui reprĂ©sentent les obstacles et les rectangles qui reprĂ©sentent les trous de passage avancent de 15 pixel (le â devant le 15 est Ă cause de lâorientation des axes dans excel)
'Fait avancer vers la gauche le rectangle3 de 15 ActiveSheet.Shapes.Range(Array("Rectangle 3")).IncrementLeft -15 ActiveSheet.Shapes.Range(Array("Rectangle 13")).IncrementLeft -15
‘Fait avancer vers la gauche le rectangle4 de 15
ActiveSheet.Shapes.Range(Array(« Rectangle 4 »)).IncrementLeft -15
ActiveSheet.Shapes.Range(Array(« Rectangle 14 »)).IncrementLeft -15
‘Fait avancer vers la gauche le rectangle5 de 15
ActiveSheet.Shapes.Range(Array(« Rectangle 5 »)).IncrementLeft -15
ActiveSheet.Shapes.Range(Array(« Rectangle 15 »)).IncrementLeft -15
Les rectangles qui reprĂ©sentent les obstacles et les rectangles qui reprĂ©sentent les trous de passage avancent de 15 pixel (le â devant le 15 est Ă cause de lâorientation des axes dans excel)
'Fait descendre le rectangle (player) de 30 ActiveSheet.Shapes.Range(Array("player")).IncrementTop 30
Fait descendre le joueur de 30 pixels automatiquement (dâoĂč le besoin de cliquer pour sauter)
'Affiche la position horizontale du rectangle Range("B1").FormulaR1C1 = ActiveSheet.Shapes.Range(Array("Rectangle 1")).Left
‘Affiche la largeur du cadre
Range(« B2 »).FormulaR1C1 = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
Affiche dans B1 la position du premier obstacle
Affiche dans B2 la position du cadre
'Si le rectangle 1 dĂ©passe le cadre alors ça s'arrĂȘte If ActiveSheet.Shapes.Range(Array("Rectangle 1")).Left = 0 Then ActiveSheet.Shapes.Range(Array("Rectangle 1")).Left = ActiveSheet.Shapes.Range(Array("cadre")).Width ActiveSheet.Shapes.Range(Array("Rectangle 11")).Left = ActiveSheet.Shapes.Range(Array("cadre")).Width 'Call Arret End If
Si lâobstacle arrive au dĂ©but du cadre, alors il retourne Ă la fin du cadre (pour faire quelque chose dâinfini) (en anglais : if = si et then = alors)
'Si le rectangle 2 dĂ©passe le cadre alors ça s'arrĂȘte If ActiveSheet.Shapes.Range(Array("Rectangle 2")).Left = 0 Then 'Call Arret ActiveSheet.Shapes.Range(Array("Rectangle 2")).Left = ActiveSheet.Shapes.Range(Array("cadre")).Width ActiveSheet.Shapes.Range(Array("Rectangle 12")).Left = ActiveSheet.Shapes.Range(Array("cadre")).Width End If
MĂȘme principe pour le deuxiĂšme obstacle
'Si le rectangle 3 dĂ©passe le cadre alors ça s'arrĂȘte If ActiveSheet.Shapes.Range(Array("Rectangle 3")).Left = 0 Then 'Call Arret ActiveSheet.Shapes.Range(Array("Rectangle 3")).Left = ActiveSheet.Shapes.Range(Array("cadre")).Width ActiveSheet.Shapes.Range(Array("Rectangle 13")).Left = ActiveSheet.Shapes.Range(Array("cadre")).Width End If
‘Si le rectangle 4 dĂ©passe le cadre alors ça s’arrĂȘte
If ActiveSheet.Shapes.Range(Array(« Rectangle 4 »)).Left = 0 Then
‘Call Arret
ActiveSheet.Shapes.Range(Array(« Rectangle 4 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
ActiveSheet.Shapes.Range(Array(« Rectangle 14 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
End If
‘Si le rectangle 5 dĂ©passe le cadre alors ça s’arrĂȘte
If ActiveSheet.Shapes.Range(Array(« Rectangle 5 »)).Left = 0 Then
‘Call Arret
ActiveSheet.Shapes.Range(Array(« Rectangle 5 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
ActiveSheet.Shapes.Range(Array(« Rectangle 15 »)).Left = ActiveSheet.Shapes.Range(Array(« cadre »)).Width
End If
MĂȘme principe pour les autres obstacles
'quand le rectangle 11 revient au début il change de hauteur aléatoirement If ActiveSheet.Shapes.Range(Array("Rectangle 11")).Left = 0 Then ActiveSheet.Shapes.Range(Array("Rectangle 11")).Top = Range("A4").Text End If
‘quand le rectangle 12 revient au dĂ©but il change de hauteur alĂ©atoirement
If ActiveSheet.Shapes.Range(Array(« Rectangle 12 »)).Left = 0 Then
ActiveSheet.Shapes.Range(Array(« Rectangle 12 »)).Top = Range(« A4 »).Text
End If
‘quand le rectangle 13 revient au dĂ©but il change de hauteur alĂ©atoirement
If ActiveSheet.Shapes.Range(Array(« Rectangle 13 »)).Left = 0 Then
ActiveSheet.Shapes.Range(Array(« Rectangle 13 »)).Top = Range(« A4 »).Text
End If
‘quand le rectangle 14 revient au dĂ©but il change de hauteur alĂ©atoirement
If ActiveSheet.Shapes.Range(Array(« Rectangle 14 »)).Left = 0 Then
ActiveSheet.Shapes.Range(Array(« Rectangle 14 »)).Top = Range(« A4 »).Text
End If
‘quand le rectangle 15 revient au dĂ©but il change de hauteur alĂ©atoirement
If ActiveSheet.Shapes.Range(Array(« Rectangle 15 »)).Left = 0 Then
ActiveSheet.Shapes.Range(Array(« Rectangle 15 »)).Top = Range(« A4 »).Text
End If
Quand les rectangles blancs reviennent au début, il changent de hauteur aléatoirement (pour ne pas rendre le jeu identique)
'si le rectangle (player) toucle le bas t'as perdu If ActiveSheet.Shapes.Range(Array("player")).Top + ActiveSheet.Shapes.Range(Array("player")).Height > ActiveSheet.Shapes.Range(Array("cadre")).Height Then Call Arret End If
Si le joueur touche le bas, alors il a perdu
'si le rectangle (player) toucle les parois de rectangle 11 t'as perdu If ActiveSheet.Shapes.Range(Array("player")).Top + ActiveSheet.Shapes.Range(Array("player")).Height > ActiveSheet.Shapes.Range(Array("rectangle 11")).Height + ActiveSheet.Shapes.Range(Array("rectangle 11")).Top Then If ActiveSheet.Shapes.Range(Array("player")).Left + ActiveSheet.Shapes.Range(Array("player")).Width < ActiveSheet.Shapes.Range(Array("rectangle 11")).Left + ActiveSheet.Shapes.Range(Array("rectangle 11")).Width Then If ActiveSheet.Shapes.Range(Array("player")).Left + ActiveSheet.Shapes.Range(Array("player")).Width > ActiveSheet.Shapes.Range(Array("rectangle 11")).Left Then Call Arret End If End If End If If ActiveSheet.Shapes.Range(Array("player")).Top < ActiveSheet.Shapes.Range(Array("rectangle 11")).Top Then If ActiveSheet.Shapes.Range(Array("player")).Left + ActiveSheet.Shapes.Range(Array("player")).Width < ActiveSheet.Shapes.Range(Array("rectangle 11")).Left + ActiveSheet.Shapes.Range(Array("rectangle 11")).Width Then If ActiveSheet.Shapes.Range(Array("player")).Left + ActiveSheet.Shapes.Range(Array("player")).Width > ActiveSheet.Shapes.Range(Array("rectangle 11")).Left Then Call Arret End If End If End If
Si le joueur touche une des parois du premier obstacle, alors il a perdu
'si le rectangle (player) toucle les parois de rectangle 12 t'as perdu If ActiveSheet.Shapes.Range(Array("player")).Top + ActiveSheet.Shapes.Range(Array("player")).Height > ActiveSheet.Shapes.Range(Array("rectangle 12")).Height + ActiveSheet.Shapes.Range(Array("rectangle 12")).Top Then If ActiveSheet.Shapes.Range(Array("player")).Left + ActiveSheet.Shapes.Range(Array("player")).Width < ActiveSheet.Shapes.Range(Array("rectangle 12")).Left + ActiveSheet.Shapes.Range(Array("rectangle 12")).Width Then If ActiveSheet.Shapes.Range(Array("player")).Left + ActiveSheet.Shapes.Range(Array("player")).Width > ActiveSheet.Shapes.Range(Array("rectangle 12")).Left Then Call Arret End If End If End If If ActiveSheet.Shapes.Range(Array("player")).Top < ActiveSheet.Shapes.Range(Array("rectangle 12")).Top Then If ActiveSheet.Shapes.Range(Array("player")).Left + ActiveSheet.Shapes.Range(Array("player")).Width < ActiveSheet.Shapes.Range(Array("rectangle 12")).Left + ActiveSheet.Shapes.Range(Array("rectangle 12")).Width Then If ActiveSheet.Shapes.Range(Array("player")).Left + ActiveSheet.Shapes.Range(Array("player")).Width > ActiveSheet.Shapes.Range(Array("rectangle 12")).Left Then Call Arret End If End If End If
‘si le rectangle (player) toucle les parois de rectangle 13 t’as perdu
If ActiveSheet.Shapes.Range(Array(« player »)).Top + ActiveSheet.Shapes.Range(Array(« player »)).Height > ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Height + ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Left Then
Call Arret
End If
End If
End If
If ActiveSheet.Shapes.Range(Array(« player »)).Top < ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 13 »)).Left Then
Call Arret
End If
End If
End If
Si le joueur touche une des parois du 2Ăšme et 3Ăšme obstacle, alors il a perdu
'si le rectangle (player) toucle les parois de rectangle 14 t'as perdu If ActiveSheet.Shapes.Range(Array("player")).Top + ActiveSheet.Shapes.Range(Array("player")).Height > ActiveSheet.Shapes.Range(Array("rectangle 14")).Height + ActiveSheet.Shapes.Range(Array("rectangle 14")).Top Then If ActiveSheet.Shapes.Range(Array("player")).Left + ActiveSheet.Shapes.Range(Array("player")).Width < ActiveSheet.Shapes.Range(Array("rectangle 14")).Left + ActiveSheet.Shapes.Range(Array("rectangle 14")).Width Then If ActiveSheet.Shapes.Range(Array("player")).Left + ActiveSheet.Shapes.Range(Array("player")).Width > ActiveSheet.Shapes.Range(Array("rectangle 14")).Left Then Call Arret End If End If End If If ActiveSheet.Shapes.Range(Array("player")).Top < ActiveSheet.Shapes.Range(Array("rectangle 14")).Top Then If ActiveSheet.Shapes.Range(Array("player")).Left + ActiveSheet.Shapes.Range(Array("player")).Width < ActiveSheet.Shapes.Range(Array("rectangle 14")).Left + ActiveSheet.Shapes.Range(Array("rectangle 14")).Width Then If ActiveSheet.Shapes.Range(Array("player")).Left + ActiveSheet.Shapes.Range(Array("player")).Width > ActiveSheet.Shapes.Range(Array("rectangle 14")).Left Then Call Arret End If End If End If
‘si le rectangle (player) toucle les parois de rectangle 15 t’as perdu
If ActiveSheet.Shapes.Range(Array(« player »)).Top + ActiveSheet.Shapes.Range(Array(« player »)).Height > ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Height + ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Left Then
Call Arret
End If
End If
End If
If ActiveSheet.Shapes.Range(Array(« player »)).Top < ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Top Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width < ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Left + ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Width Then
If ActiveSheet.Shapes.Range(Array(« player »)).Left + ActiveSheet.Shapes.Range(Array(« player »)).Width > ActiveSheet.Shapes.Range(Array(« rectangle 15 »)).Left Then
Call Arret
End If
End If
End If
Si le joueur touche une des parois du 4Ăšme et 5Ăšme obstacle, alors il a perdu
Range("A18").FormulaR1C1 = ActiveSheet.Shapes.Range(Array("player")).Top + ActiveSheet.Shapes.Range(Array("player")).Height Range("A19").FormulaR1C1 = ActiveSheet.Shapes.Range(Array("rectangle 11")).Height + ActiveSheet.Shapes.Range(Array("rectangle 11")).Top Range("A20").FormulaR1C1 = ActiveSheet.Shapes.Range(Array("player")).Left Range("A21").FormulaR1C1 = ActiveSheet.Shapes.Range(Array("player")).Top Range("A22").FormulaR1C1 = ActiveSheet.Shapes.Range(Array("rectangle 11")).Top
Calculs qui permettent de savoir la position du joueur
Sub Arret() On Error Resume Next Application.OnTime ProchainChrono, Procedure:="majChrono", Schedule:=False MsgBox "Perdu"
ArrĂȘte le chrono donc le jeu
Sub Saut() ActiveSheet.Shapes.Range(Array("player")).IncrementTop -15 End Sub
Permet de faire sauter le joueur
Autres possibilités :
Aller dans la feuille 2 de mon fichier Excel (lien)
Cliquer sur les boutons que vous voulez
Vous pouvez aller voir le code de ces actions dans les macros
Attention quand on enregistreâŠ
Sachant que câest vous qui Ă©crivez le code, il nây a aucun risque
Comme vous pouvez le constater, beaucoup de choses sont possibles
- Il ne vous reste plus quâĂ faire marcher votre imagination
Astuce :
- Pour commencer à développer sur Excel, je me suis aidé de Google, en tapant des choses simples comme « utiliser un chronomÚtre sur Excel »
- Je me suis aussi beaucoup aidé des macros directement sur Excel, notamment pour les mouvements.
- En effet, une macro est un peu comme un enregistreur de mouvements. On lance lâenregistrement de la macro, on fait les mouvements quâon veut (avec la souris et le clavier) et la macro convertie les mouvements en code
Cliquer sur « Enregistrer une macro »
Cliquer sur OK
Changer de position le rectangle
Changer la taille
Changer la couleur
Retourner dans l’onglet DĂ©veloppeur
Cliquer sur « ArrĂȘter l’enregistrement »
Cliquer sur Macros
Cliquer sur « Macro2 » ou le nom de votre macro si elle a un autre nom
Cliquer sur Modifier
Changement de position
Changement de taille
Changement de couleur
On voit que tous vos mouvements ont été écrit
A VOUS DE JOUER MAINTENANT!!!