Projet Memory Excel

Bonjour a tous, je suis en licence pro conduite de chantier bâtiment et j'ai un projet en informatique a finir pour demain matin. le problème c'est que j'ai seulement eu 4 heures de cours et que je suis bloqué a un endroit. Donc si quelqu'un pouvait m'aider ce serait super sympa ! :)

Je vous mets un peu plus bas le début de "code" que j'ai essayé de faire.

Voila mon problème :

J'ai une userform sur laquelle se trouve 16 cartes retournés. Le but étant, en les retournant deux par deux, de les faire toutes disparaitre. Je ne comprends pas comment faire pour que, lorsque je retourne une des 16 cartes, il ne se passe rien et lorsque je clique sur la seconde, deux possibilités s'offrent à moi. Soit les deux cartes sont les mêmes dans quel cas elles disparaissent au bout de 2 secondes, soit ce ne sont pas les mêmes, dans ce cas, elles se figent pendant 3 secondes et se retournent à nouveau. Si vous avez des pistes ou qu'il vous manque des infos, surtout hésitez pas :) On m'a parlé de Me.Controls mais je ne sais pas du tout utiliser cette commande ...

Merci d'avance

8projet-info.xlsm (22.27 Ko)

Bonjour,

C'est un petit peu plus compliqué que ça !

Vous devez créer une variable STATUS comme indiqué dans ce début de code...

ensuite pour chaque carte :

Option Explicit
Dim STATUS As Boolean

Private Sub Carte_1_Click()
STATUS = Not STATUS
If STATUS Then 'Status = True (la première carte vient d'être cliquée:
   'on la rend visible
   'il ne se passe rien
Else 'Status repasse à False (la deuxième carte vient d'être cliquée on décmanche les calculs...
   Call calcul
End If
End Sub

Pour le reste il faut que je farfouille un peu dans votre code, mais le initialize et vos variable me semble un peu bidon alors les calculs...
Je reviens plus tard. J'ai un petit dérangement...
A+

En suivant vos conseils j'obtiens quelque chose de ce style pour toutes les sub de toutes mes cartes si j'ai bien compris ?

Private Sub Carte_1_Click()

STATUS = False

If STATUS Then 'la première carte vient d'être cliquée
    STATUS = True
    Carte_1.BackColor = &H80000005 'on la rend visible
    'il ne se passe rien
Else
    STATUS = False 'la deuxième carte vient d'être cliquée on déclanche les calculs...

Call calcul

End Sub

La variable STATUS s'adapte pour n'importe quelle carte ?

Oui à une vache près... (j'avais fait une petite erreur !)

Mais sur le fond c'est à peu près ça chaque bouton comporte le même code.

Donc pour éviter d'avoir à répéter le même code 16 fois je vais faire une sub unique qui sera appelée par les 16 boutons...

Private Sub Unique(i%) '(% = as Integer)
STATUS = Not STATUS
   ShowCard i 'on la rend visible
If STATUS Then 'Status = True (la première carte vient d'être cliquée:
   MEM = i 'on mémorise la carte découverte
Else 'Status repasse à False (la deuxième carte vient d'être cliquée on décmanche les calculs...
   Call calcul(i)
End If
End Sub

Chaque bouton appelera donc cette sub unique en lui passant juste sont indice en paramètre.

Dim STATUS As Boolean, MEM% 

Private Sub Carte_1_Click()
Call Unique(1)
End Sub

Tu remarqueras au passage que j'ai rajouté une deuxième variable Mem qui mémorise l'indice de la première carte découverte.

Ensuite j'ai un peu adapté ta proc de calcul...

Le résultat :

4projet-info.xlsm (27.98 Ko)

A+

pour la variable STATUS on appelle cela un switch :

STATUS = Not STATUS

Au départ STATUS est False

Quand on Clic une carte elle devient Not False donc : True

puis quand on clique une deuxième carte elle devient Not True donc... False !!!!!!!!!!!!!!!!

et ainsi de suite...

A+

Bonjour,

J'espère que tu auras une bonne note Galopin, je croise les doigts 😊

Bonjour,

Tu rigoles ! J'ai le même à la maison :

https://www.excel-pratique.com/fr/telechargements/jeux/memory-excel-no251

A+

Désolé de répondre aussi tard, j'avais d'autres projets ..

Merci beaucoup pour le temps que tu m'as accordé et pour le fichier que tu m'as rendu.

Le seul petit soucis c'est que je comprends pas grand chose au code que tu as fait, comme dis, j'ai seulement eu 4 heures de ce cours :/

Ce serait possible que tu annotes un peu tout le code avec des explications pour que je comprennes un peu plus ce que tu as fais ? Si tu as pas le temps c'est pas grave du tout je me débrouillerais ^^

Voilà qui est fait : il n'y avait pas grand chose à rajouter.

Relis aussi avec attention mes commentaires du forum : Tout y est !

Après c'est une question de "brainstorming" !

A+

Merci beaucoup pour ton aide !!

A+

Rechercher des sujets similaires à "projet memory"