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 :

Problème de commandbutton


Sujet :

Macros et VBA Excel

  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 Problème de commandbutton
    Bonjour,

    J'ai 12 commandbuttons dans lesquels il y a des images avec des pions. Chaque fois qu'on clique dessus ça le met à 0 et augmente les commandbuttons suivant. Mon problème est que quand on arrive au commandbutton12 et qu'il y a par exemple 6 pions il ne veut pas les rajouter au commandbutton1 puis 2 puis 3.... ça fonctionne pour tous les commandbuttons mais ça bbloque dès qu'il veut passer du 10,11, ou 12 vers le 1,2....

    voici mon code si vous avez une idée :

    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
    29
    30
    31
    32
    33
    Private Sub CommandButton11_Click()
       Dim i As Integer
        For i = 1 To 30
          traitons11 i
        Next
    End Sub
     
    Private Sub traitons11(num As Integer)
     
      If TextBox11.Value = num Then
      TextBox11.Value = 0
        For i = 12 To num + 11
          Me.Controls("TextBox" & i).Value = Me.Controls("TextBox" & i).Value + 1
       Next
        End If
    End Sub
     
    Private Sub CommandButton12_Click()
       Dim i As Integer
        For i = 1 To 30
          traitons12 i
        Next
    End Sub
     
    Private Sub traitons12(num As Integer)
     
      If TextBox12.Value = num Then
      TextBox12.Value = 0
        For i = 13 To num + 12
          Me.Controls("TextBox" & i).Value = Me.Controls("TextBox" & i).Value + 1
       Next
        End If
    End Sub
    Et il bloque sur ce code là :

    Me.Controls("TextBox" & i).Value = Me.Controls("TextBox" & i).Value + 1


    Merci pour votre aide

  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,

    "ça bloque" avec quelle valeur de I ?
    Avec quel message d'erreur ?
    Et (bien évidemment) : as-tu réellement une textbox de ce nom ? ("textbox" & i)

  3. #3
    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
    ça bloque sur :

    Me.Controls("TextBox" & i).Value = Me.Controls("TextBox" & i).Value + 1 par contre je ne sais pas comment identifier sur quel i ça bloque.
    J'utilise bien des textbox, 12 au total.

  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
    Ca te coûte tant de rentrer en mode debug quand ça coince et d'y regarder la valeur de I ????
    (Car ton problème est probablement là !!)

  5. #5
    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
    dsl je suis débutant et tu vas trouver ça bête mais comment je peux regarder la valeur I ? en la remplaçant par des nombres ? merci d'avance

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour

    Tu peux mettre un msgbox dans ta procédure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub traitons11(num As Integer)
     
      If TextBox11.Value = num Then
      TextBox11.Value = 0
        For i = 12 To num + 11
        msgbox i    
       Me.Controls("TextBox" & i).Value = Me.Controls("TextBox" & i).Value + 1
       Next
        End If
    End Sub

  7. #7
    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
    grâce à ton msgbox j'ai compris. Le commandbutton11 se met à 0 puis il rajoute 1 au commandbutton12 et c'est là que ça coince il veut pas boucler pour incrémenter de 1 le commandbutton1 et le commandbutton2 et continuer ainsi de suite.
    Est ce que quelqu'un serait faire ça ??

    Vous êtes courageux lol et merci d'avance

  8. #8
    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
    C'est à toi de jouer...
    On en arrive là non plus à la connaissance de VBA, mais à la seule utilisation de la pensée (et ce qui suit serait la même chose quel que fût le langage).

    Il t'appartient d'écrire/dire que si I > 12 alors on passe à 1
    Et pour éviter tout conflit :
    Dans ta boucle I ===>> tu dis (raisonnement volontairement exprimé en clair et non en code)
    - que n = I
    - que si I > 12 alors n = I-12
    - que controls("Textbox" & n).value = controls("Textbox" & n).value + 1

    Allez... retrousse tes manches et fais un peu travailler tes méninges ...... (c'est vraiment simple)
    Dans mon exemple : 12 est la textbox la "plus grande" (TextBox12)

    Tu as écrit :
    Vous êtes courageux lol
    on attend de toi que tu le sois un peu également ...

  9. #9
    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
    merci je tente ça mais t'inquiete pas vba me fait réfléchir et me fait passer pas mal d'heures devant le pc. En tout cas je te remercie de la façon dont tu m'aides ucfoutu c'est sympas. Je vous tiens au courant...

  10. #10
    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
    Un grand merci à toi UCFOUTU j'ai mis un peu de temps à trouver mais j'ai fini par réussir. Merci de la façon dont tu m'as aidé en m'orientant. Si j'ai encore besoin j'espère que tu continueras à le faire comme cela. Encore merci

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

Discussions similaires

  1. problème de commandButton inactif
    Par Atatorus dans le forum JSF
    Réponses: 6
    Dernier message: 10/01/2011, 11h35
  2. Icefaces problème avec commandButton
    Par soffru dans le forum JSF
    Réponses: 3
    Dernier message: 27/01/2010, 10h49
  3. Problème commandButton avec Facelet
    Par remi.py dans le forum JSF
    Réponses: 3
    Dernier message: 10/09/2008, 11h11
  4. Réponses: 4
    Dernier message: 23/01/2008, 11h35
  5. [JSF] Problème : param & commandButton
    Par Maxbj dans le forum JSF
    Réponses: 6
    Dernier message: 12/06/2006, 19h32

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