CommandButton.enabled = False ??

Résolu
cs_kouki69 Messages postés 95 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 28 août 2015 - 7 juin 2006 à 10:14
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 8 juin 2006 à 17:36
Bonjour,
Voilà, j'ai créé dans un userform un bouton "NEXT" que je souhaite avoir grisé tant que toutes les cellules( textbox, ComboBox ...) ne sont pas remplies. Lorsque toutes les cellules du userform sont remplies, à ce moment là, le bouton "NEXT" n'est plus grisé et est donc actif pour passer au userform suivant.
J'ai déjà utilisé ce principe dans un userform qui ne comptait que deux cellules à remplir et j'ai utilisé les lignes suivantes et qui fonctionne bien :

Private Sub speed_Change()
If UserForm1.speed.Value = "" Then
UserForm1.CommandButton1.Enabled = False
Else
  If UserForm1.Textetoi.Value = "" Then
    UserForm1.CommandButton1.Enabled = False
    Else
          CommandButton1.Enabled = True
   End If
End If

MAINTENANT, j'ai une trentaine de cellule à remplir et je ne crois pas que les lignes ci-dessus soit la meilleure façon de faire !!!
N'y a t-il pas moyen de dire : Si toutes les cellules du userform ne sont pas remplies, alors bouton grisé, autrement, bouton actif !!

Merci de votre aide !!!!!

32 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
8 juin 2006 à 16:05
Salut,

Premiere chose:

Si le Userform5 est le seul à utiliser ta procédure boutongrisé, tu peux la mettre directement dans le code UserForm5 plutot que de la mettre dans un module.

Ensuite.dans le code du UserForm5 Tu n'appelles cette procédure qu'une fois.

Alors qu il l'appellé dans l'événements change de tout tes TextBox.

Question,
Dans la Section général par exemple Result doit etre dégrisé lorsque tout les champs sont remplis c'est ca (textbox + ComboBox?).

Ce que je veux dire c'est est ce qu en plus il fautr aussi remplir les section Suction 1rst et Discharge 1st?

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
cs_kouki69 Messages postés 95 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 28 août 2015
8 juin 2006 à 16:37
Le userform5 serait le seul à appeler cette procédure

Effectivement , mais c'était un test, il était prévu de l'appeller dans chaque textbox et combobox

Result doit etre dégrisé lorsque tout les champs sont remplis  (textbox + ComboBox?)  dans general ainsi que ds suction1st et disch 1st
@+








 
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
8 juin 2006 à 16:40
Re,

Donc on est d'accord que la seule et unique maniere que result ne soit pas grise est de remplir TOUT les textes de general
suction et disch.

J'attend confirmation.

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
cs_kouki69 Messages postés 95 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 28 août 2015
8 juin 2006 à 16:43
Je confirme, textbox ET ComboBox  de general, suction et disch.


A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
8 juin 2006 à 16:58
Attention les parenthese ont ete bouffées:

If (TypeOf Ctrl Is MSForms.TextBox) Or (TypeOf Ctrl Is MSForms.ComboBox) Then 

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
demon_renard Messages postés 34 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 23 juin 2006
8 juin 2006 à 17:13
Salut jrivet,
Simple question de débutant à érudit, si on supprime le contenu d’une textBox ou d’une comboBox du milieu (pas la dernière qui est surveillé) cela ne va-t-il pas laisser la valeur du bouton à true ?
0
cs_kouki69 Messages postés 95 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 28 août 2015
8 juin 2006 à 17:17
CA MARCHE, en fait j'aurai du appeller ton code dès le début dans chaque textbox et combo.
Merci JRIVET pour ton aide précieuse.
Peut-être à une prochaine fois pour un nouveau problème
Salut
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
8 juin 2006 à 17:22
Salut,

Non car si tu regarde bien , dès que la boucle trouve un contenu vide elle met la variable a FALSE donc forcement le bouton redeviendra grisé.

D'ailleurs on pourrait améliorer ca de la facon suivante

If (TypeOf Ctrl Is MSForms.TextBox) Or (TypeOf Ctrl Is MSForms.ComboBox) Then 
        'Si le contenu du textbox est vide
   If Ctrl.Text =  "" Then 
      CmdEnable = False 
       Exit For   'On sort de la boucle car on a trouve un controle vide donc plus besoin de continuer

    End If 

D'ailleurs le code que je propose fait exactement la meme chose que la boucle que tu as propose

If TypeOf Ctrl Is MSForms.TextBox Then
        'Si le contenu du textbox est vide        If Ctrl.Text "" Then i i + 1  ' **
    End If
Next
If i = 0 Then                           ' **
  CommandButton3.Enabled = True  ' **
Else                                        ' **
  CommandButton3.Enabled = False ' **
End If       

Si i ne vaut pas 0 c'est donc que l'on est passer par i = i + 1 (Donc par  CmdEnable = False)

Tu remarqueras qu 'une fois qu 'il est a FALSE rien ne peut le remmettre a TRUE

Voila j'espere avoir ete explicatif
@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
8 juin 2006 à 17:22
Salut,

>kouki69 : mais de rien (On a reussi a l'avoir ce problème )

Aller @+

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
demon_renard Messages postés 34 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 23 juin 2006
8 juin 2006 à 17:27
J'ai encore dit une connerie
Je le referai plu c’est promis
désolé,
j'ai pas compris ou était mon erreur mais ton code est parfait
0
demon_renard Messages postés 34 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 23 juin 2006
8 juin 2006 à 17:29
Merci pour les explication, c'est parfais
Je me coucherais moin con ce soir

@++
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
8 juin 2006 à 17:36
Re,

Ca m'arrive presque tout les jours de me coucher moins C.. mais je trouve toujours ca aussi plaisant

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
Rejoignez-nous