Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

clics de souris

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

D

doctojones

Guest
Bonjour

Je cherche à reprogrammer en vba un petit jeu que j'ai vu sur une console portable.
En bref, j'ai un tableau avec 3 cellules sur 3. Certaines de ces cellules contiennent des "1" et d'autres des "0". Le joueur doit cliquer avec la souris sur tous les "1" dans le tableau.
C'est ici que je bloque : comment faire pour que, lorsque le joueur clique une fois sur une cellule contenant un "1", celle-ci change de suite de couleur ?

Merci d'avance
 
Re : clics de souris

Bonsoir et bienvenu sur le forum DoctoJones,

Si tu avais mis ton début de fichier, j'aurais bien aimé 😉

Mais comme c'est ton premier post... j'ai refais ton fichier puis rajouté ce qui te manquait :

DoctoJones à dit:
comment faire pour que, lorsque le joueur clique une fois sur une cellule contenant un "1", celle-ci change de suite de couleur ?

Bonne soirée

Edition 1. : Bonsoir ROGER2327. Sans le vouloir, j'ai réalisé tes désires en plus de répondre à DoctoJones 🙂

Edition 2. : ROGER2327, ta macro est plus abouti est professionnel que la mienne, mais par contre, lorsqu'on clic dans une cellule contenant 1 et en jaune, elle ne change pas de couleur 😀
 

Pièces jointes

Dernière édition:
Re : clics de souris

Je vous remercie, ROGER2327 et Excel-lent, pour vos réponses rapides. C'est bien cela que je cherchais à faire. Je vais travailler dessus demain et voir si j'arrive à l'integrer à mon fichier, c'est pas du tout cuit 😉
La prochaine fois je penserai à éditer mon fichier dans mon post. Désolé.

Encore une fois merci à vous deux !
 
Re : clics de souris

Bonsoir le fil,

ROGER2327 avec ta belle macro, tu m'as titillé 😉

Je me devais donc de me surpasser.

Macro proposé tout à l'heure dans ma pièce jointe :
Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  If [COLOR="Blue"]Target.Column >= 2 And Target.Column <= 4 And Target.Row >= 2 And Target.Row <= 4[/COLOR] Then
      If ActiveCell = 1 And ActiveCell.Interior.ColorIndex = 6 Then
         ActiveCell.Interior.ColorIndex = 37
      Else
         If ActiveCell = 1 Then ActiveCell.Interior.ColorIndex = 6
      End If
  End If

End Sub

Nouvelle proposition :
Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  If [COLOR="Blue"]Not Application.Intersect(Target, Range("[B][U]A2: D4[/U][/B]")) Is Nothing[/COLOR] Then
      If ActiveCell = 1 And ActiveCell.Interior.ColorIndex = 6 Then
         ActiveCell.Interior.ColorIndex = 37
      Else
         If ActiveCell = 1 Then ActiveCell.Interior.ColorIndex = 6
      End If
  End If

End Sub

Partie modifié

Je pensais qu'il était plus simple pour toi de définir ta zone ainsi : Range("A2: D4")

plutôt qu'ainsi : Target.Column >= 2 And Target.Column <= 4 And Target.Row >= 2 And Target.Row <= 4

Bonne fin de soirée

PS. : dans le code suivant : A2: D4 pense à enlever l'espace entre : et D rajouté uniquement pour éviter que cela s'affiche ainsi : A2😀4 qui tu l'avouera n'est pas très clair 😉
 
Dernière édition:
Re : clics de souris

Bonsoir le fil,

Non aucune idée du jeux! Au début je pensais au morpion, mais j'ai vite abandonné cette idée!

Voici ma macro un peu mieux compressé :
Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveCell.Interior
  If Not Application.Intersect(Target, [A2:D4]) Is Nothing Then
      If ActiveCell = 1 And .ColorIndex = 6 Then
         .ColorIndex = 37
      Else
         If ActiveCell = 1 Then .ColorIndex = 6
      End If
  End If
End With
End Sub

Bonne soirée à tous
 
Dernière édition:
Re : clics de souris

Je ne me souviens pas du nom de ce jeu, mais c'était sur un iPod.

Finalement je n'ai pas pu attendre demain, et j'ai voulu essayer de suite votre macro. Malheureusement, comme je m'y attendais, je n'y arrive pas 🙁
Je vous joins le fichier. J'ai mis un HELP à l'endroit où je désire effectuer ce test.
J'imagine que ce que j'ai déjà fait peut se faire de manière plus concise et beaucoup plus proprement, mais je débute en vba.

Rmq : Les "1" et les "0" ont volontairement la même couleur que la cellule qui les contient. Du coup ils ne sont pas visibles.
 

Pièces jointes

Re : clics de souris

Re



J'ai voulu me joindre à vous et compresser encore ton code Excel-lent

mais je coince ici

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveCell.Interior
  If Not Application.Intersect(Target, [A2:D4]) Is Nothing Then
  .ColorIndex = IIf(ActiveCell = 1 And .ColorIndex = 6, 37, 6)
  End If
End With
End Sub
 
Re : clics de souris

Petite précision sur le fonctionnement du fichier joint :

Dans le tableau de droite, je créé des valeurs aléatoires.
Les cases contenant les 3 plus grandes valeurs correspondent aux cases rouges visibles deux secondes dans le tableau de gauche. Lorsque ces cases rouges redeviennent jaunes, le joueur doit alors cliquer sur ces cases qui étaient rouges sans se tromper pour passer au niveau suivant avec un tableau plus grand et plus de cases rouges.
 
Re : clics de souris

Re


Tu as vu qu'il existait une version flash de ce jeu

(donc jouable sur PC) sur le site de l'éditeur ?

Désolé, mais je suis en train d'y jouer plutôt que de refaire le jeu en VBA 😉
 
Re : clics de souris

Salut Vbacrumble,

Je savais que pour compresser encore mieux mon code, je devais compresser ma condition IF-THEN-ELSE en IIf, mais n'y arrivant pas en 5mn, j'ai abandonné!


Ta macro fonctionne mais ne fait pas exactement pareil que la mienne
La tienne colorie en jaune les cellules avec la valeur 0, alors qu'il ne faut pas y toucher!

Mais grâce à toi, j'ai pu récupérer ta logique et l'adapter à mon code. Je t'en remercie, tu m'as permis de me surpasser encore plus.

Voici ci-dessous ma macro de départ :
Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveCell.Interior
  If Not Application.Intersect(Target, [A2:D4]) Is Nothing Then
      If ActiveCell = 1 And .ColorIndex = 6 Then
         .ColorIndex = 37
      Else
         If ActiveCell = 1 Then .ColorIndex = 6
      End If
  End If
End With
End Sub

La même comprimé encore mieux :
Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveCell.Interior
  If Not Application.Intersect(Target, [A2:D4]) Is Nothing Then
  .ColorIndex = IIf(ActiveCell = 1 And .ColorIndex = 6, 37, IIf(ActiveCell = 1, 6, xlNone))
  End If
End With
End Sub

Merci encore à toi Vbacrumble.

Bonne fin de soirée à tous
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
245
Réponses
4
Affichages
332
Réponses
250
Affichages
17 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…