IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Événements successifs avec Worksheet_SelectionChange [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Par défaut Événements successifs avec Worksheet_SelectionChange
    Bonjour !

    Je suis en train de faire un travail pratique avec VBA Excel. Il s'agit de coder un jeu de Tic-Tac-Toe.

    Il faut que quand je clique sur une des cellules du Tic-Tac-Toe (Range("A1:A3,B1:B3,C1:C3")), une macro s'exécute (un message apparaît dans une cellule).

    Puis, ensuite, si je clique une seconde fois sur une des cellules du Tic-Tac-Toe, une autre macro s'exécute (un X bleu apparaît dans la cellule sélectionnée).

    Je n'arrive pas à faire en sorte que les macros s'exécutent successivement : je clique, macro 1 s’exécute, je clique une seconde fois, macro 2 s'exécute. Dans mon cas, c'est ça qui ce passe : je clique, les deux macros s'exécutent l'une après l'autre sans que j'aie à cliquer une seconde fois

    Que faire ???

    Merci d'avance !

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Si j'ai bien compris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub Worksheet_SelectionChange()
         macro1
         macro2
    end sub
    P.S. Pour ceux qui ne sauraient pas, le Tic-Tac-Toe du Québec, c'est le morpion de la France.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Par défaut
    Oui c'est ça, pour être plus précis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     
    If Not Intersect(Range("A1:A3,B1:B3,C1:C3"), Target) Is Nothing Then
         Call TicTacToe_Debut
    End If
     
    If Not Intersect(Range("A1:A3,B1:B3,C1:C3"), Target) Is Nothing Then
         Call TicTacToe_XJoue
    End If
     
    End Sub
    TicTacToe_Debut et TicTacToe_XJoue sont les 2 macros.

    Mais là les 2 macros s’exécutent en même temps Moi je veux une pause entre les deux.

    P.S. Haha vous m'avez démasqué je suis bien québécois

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,

    il faudrait que tu nous en dise plus sur la succession de tes clics...

    si j'ai bien compris tu veux que lors d'un clic sur une cellule un message apparait (Macro1) ... et si l'on clique à nouveau sur cette même cellule on lance la Macro2 ... mais que doit-il ce passer si l'on clique par exemple sur une cellule puis que l'on change d'idée et l'on clique sur celle d'as côté ..?


    tu parle d'un "message" qui apparaît dans ta cellule lorsque l'on clique une première fois dessus , ne peut-on pas utiliser ce "message" pour basculer sur macro2... ainsi si on clique sur une cellule on vérifie si "message" présent s'il ne l'est pas on lance Macro1 sinon Macro2 ...




    PS : Pour Wikipedia tic tac toe c'est des lignes de 3 cases et morpion de 5 cases et pas seulement au Quebec..

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Par défaut
    En fait, le message de la macro 1 s'affiche dans une cellule en dessous du Tic-Tac-Toe, pas dans la cellule sur laquelle on clique...

    Si je clique une première fois sur une des cellules du Tic-Tac-Toe, le message "Tour de X à jouer" apparaît en dessous du Tic-Tac-Toe (macro 1). Puis si je clique une seconde fois sur une des cellules du Tic-Tac-Toe, un X apparaît dans cette case (macro 2).

  6. #6
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    l’enchaînement de tes actions n'est toujours pas clair ... tu veux bien faire une action sur le premier clic dans une cellule ... puis plus tard sur un deuxième clic effectuer une action différente ? ou sur un clic sur une cellule tu veux lancer Macro1 puis après une pause Macro2 s'exécute (sans aucune action supplémentaire..)

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Par défaut
    Je veux qu'il faille absolument cliquer une seconde fois sur une cellule du Tic-Tac-Toe pour que la macro 2 s'exécute, c'est-à-dire pour qu'un X bleu apparaisse dans cette cellule.

    Pour résumé :
    Clic dans le Tic-Tac-Toe, le message apparaît (macro 1), (pause), deuxième clic sur une cellule du Tic-Tac-Toe, un X bleu apparaît dans cette cellule (macro 2).

    Après le but c'est de permettre à deux personnes de jouer au Tic-Tac-Toe à tour de rôle avec le programme.

    J'ai écrit le pseudo-code du programme si ça peut vous intéresser...

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Toujours pas compris...

    Citation Envoyé par bbil Voir le message
    Bonsoir,

    il faudrait que tu nous en dise plus sur la succession de tes clics...

    si j'ai bien compris tu veux que lors d'un clic sur une cellule un message apparait (Macro1) ... et si l'on clique à nouveau sur cette même cellule on lance la Macro2 ... mais que doit t'il ce passer si l'on clique par exemple sur une cellule puis que l'on change d'idée et l'on clique sur celle d'as côté ..?


    tu parle d'un "message" qui apparaît dans ta cellule lorsque l'on clique une première fois dessus , ne peut-on pas utiliser ce "message" pour basculer sur macro2... ainsi si on clique sur une cellule on vérifie si "message" présent s'il ne l'est pas on lance Macro1 sinon Macro2 ...

    ..

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 14
    Par défaut
    J'ai un Tic-Tac-Toe vide.

    Si je clique sur une cellule du Tic-Tac-Toe, le message "Tour de X à jouer" apparaît dans une cellule en dessous du Tic-Tac-Toe.

    Ensuite, si je clique à nouveau sur une cellule du Tic-Tac-Toe, un X apparaît dans cette cellule.

  10. #10
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    L’enchaînement que tu décris ne me semble pas encore viable.. mais peu-être que ce code t'aideras :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
     Dim i As Long
       On Error Resume Next
        i = Target.Count  ' évite plantage lors de sélection feuille entiére..
        On Error GoTo 0
        If Not Intersect(Me.Range("A1:C3"), Target) Is Nothing And i = 1 Then
            If Me.Range("B5") = "" Then
                Me.Range("B5") = "Tour de X a jour"
                Application.EnableEvents = False 'Désactive la gestion événement pour éviter de s'auto-appeler
                Me.Range("B5").Select 'change la sélection
                Application.EnableEvents = True
            Else
                Target.Value = "X"
                Application.EnableEvents = False 'Désactive la gestion événement pour éviter de s'auto-appeler
                 Me.Range("B5") = ""
                Me.Range("B5").Select 'change la sélection
                Application.EnableEvents = True
            End If
        End If
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/02/2015, 16h29
  2. remplir une combo suite à un évènement ajax avec dwr
    Par coco-sup dans le forum Struts 1
    Réponses: 6
    Dernier message: 23/01/2013, 14h48
  3. problème avec Worksheet_SelectionChange
    Par clarisse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/08/2007, 14h37
  4. [SQL] Tris successifs avec un limit
    Par LestoK dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 03/08/2007, 10h47
  5. [If] successifs avec et/ou lequel
    Par smutmutant2003 dans le forum Langage
    Réponses: 21
    Dernier message: 06/06/2007, 16h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo