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 :

Jeu VBA Problème


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 22
    Par défaut Jeu VBA Problème
    Bonsoir !
    Je suis en train de réalisé un jeu awalé sur vba avec deux options: 1 joueur contre le pc et l'autre option : deux joueurs.
    J'ai un soucis c'est que je suis pas trés bon j'ai fait tout ce qui était mis en forme mais j'ai un problème sur ma boucle.
    Je pense qu'il y a plus simple et plus rapide ça va faire quelques temps que je suis dessus. Voici mon code ; j'ai 12 commandbutton et ça doit s'incrémenter automatiquement pour les deux joueurs chacun leur tour.

    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
    23
    24
    25
    26
    27
    28
    Private Sub CommandButton1_Click()
        If TextBox1.Value = 4 Then
    TextBox1.Value = 0
    TextBox2.Value = TextBox2 + 1
    TextBox3.Value = TextBox3 + 1
    TextBox4.Value = TextBox4 + 1
    TextBox5.Value = TextBox5 + 1
     
        If TextBox1.Value = 5 Then
    TextBox1.Value = 0
    TextBox2.Value = TextBox2 + 1
    TextBox3.Value = TextBox3 + 1
    TextBox4.Value = TextBox4 + 1
    TextBox5.Value = TextBox5 + 1
    TextBox6.Value = TextBox6 + 1
     
     If TextBox1.Value = 6 Then
    TextBox1.Value = 0
    TextBox2.Value = TextBox2 + 1
    TextBox3.Value = TextBox3 + 1
    TextBox4.Value = TextBox4 + 1
    TextBox5.Value = TextBox5 + 1
    TextBox6.Value = TextBox6 + 1
    TextBox7.Value = TextBox7 + 1
     
    End If
     
    End Sub
    Merci de votre aide d'avance (si vous souhaitez je peux l'envoyer car à expliquer c'est un peu compliquer). Merci

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Juste une indication, dont j'espère que tu sauras profiter astucieusement :

    Me.controls("toto" & x) se refère aucontrôle nommé "totox"
    et je vois que, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If TextBox1.Value = 4 Then
    TextBox1.Value = 0
    TextBox2.Value = TextBox2 + 1
    TextBox3.Value = TextBox3 + 1
    TextBox4.Value = TextBox4 + 1
    TextBox5.Value = TextBox5 + 1
    tu vas jusqu'à me.controls("Textbox" & n + 1) lorsque Me.Controls("TextBox" & "1").value = n
    A toi de jouer...

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Petite précision: ce mode opératoire suppose que tu ne fais plus de tests et que tu fais une boucle allant de 1 à n+1. Ca paraît évident pour nous, mais ça l'est peut-être moin pour l'auteur de post, donc je pense qu'il n'est pas mauvais de le dire explicitement.

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Ah...
    Plus explicitement ?
    D'accord :
    Voilà par quoi le code qu'il nous a montré peut être remplacé :

    (à main levée) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton1_Click()
        For i = 4 To 6
          traitons i
        Next
    End Sub
     
    Private Sub traitons(num As Integer)
      If Textbox1.Value = num Then
        Textbox1.Value = 0
        For i = 2 To num + 1
          Me.Controls("TextBox" & i).Value = Me.Controls("TextBox" & i).Value + 1
        Next
    End Sub
    L'exemple me parait clair. Le mécanisme devrait alors être compris et il devrait pouvoir s'en inspirer et l'appliquer partout où il lui paraîtra utile et plus sage de le faire.
    Le reste n'est que de la gymnastique décisionnelle...

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Oups: tu n'as pas bien compris ce que je voulais dire.

    Je voulais juste dire qu'il fallait lui dire explicitement (comme je l'ai fait) qu'il fallait se servir d'une boucle. Mais bon si tu veux tu peux encore enlever ton code pour le faire réfléchir.

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Non...
    Ce code lui permettra de mieux comprendre
    et je suis presque certain de ce qu'il aura l'occasion de se servir ailleurs dans son appli de ce genre de mécanisme, en l'adaptant, à chaque fois, au contexte de son jeu.

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

Discussions similaires

  1. problème avec l'apostrophe dans une requête
    Par mika0102 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2019, 16h51
  2. [DEBUTANT - VBA] Problèmes de ComboBox
    Par _Maniak dans le forum Général VBA
    Réponses: 13
    Dernier message: 10/03/2006, 10h02
  3. Réponses: 2
    Dernier message: 17/10/2005, 14h58
  4. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 17h27
  5. [Requete SQL en VBA] Problème avec la fonction FLOOR
    Par zubral dans le forum Langage SQL
    Réponses: 4
    Dernier message: 13/07/2004, 13h24

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