UserForm : Activer/Désactiver ComboBox (cbo) + CommandButton (cmd) en fonction d [Résolu]

Messages postés
38
Date d'inscription
vendredi 14 juin 2013
Dernière intervention
9 décembre 2018
- - Dernière réponse : 1Alexiiis
Messages postés
38
Date d'inscription
vendredi 14 juin 2013
Dernière intervention
9 décembre 2018
- 25 nov. 2018 à 14:35
Bonjour,

Je souhaiterais que :
- Si la txtCODE est vide : Désactiver le clique sur la cboCOMMENTAIRE et le cmdVALIDER
- Si la txtCODE contient une valeur : Activer le clique sur la cboCOMMENTAIRE et le cmdVALIDER

Lignes 27 à 35 : J'ai codé (à ma façon : ce qui me paraissait logique) mais ça ne fonctionne pas...
Est ce que quelqu'un peut m'aider et également m'expliquer pourquoi ce que j'ai fait ne fonctionne pas ?

Option Explicit
    Dim NumLigne As Integer

Private Sub cboCOMMENTAIRE_Enter() 
    cboCOMMENTAIRE.List = Array("", "Accepté(e)", "En attente", "Refusé(e)")
End Sub

Private Sub cmdVALIDER_Click()
    Sheets("Fichier Aide").Cells(NumLigne + 2, 7) = cboCOMMENTAIRE.Value
    If Me.lstRESULTATS.ListIndex = Me.lstRESULTATS.ListCount - 1 Then
        MsgBox "Vous avez atteint le dernier enregistrement !", vbInformation, "Dernier enregistrement atteint"
    Else: Me.lstRESULTATS.ListIndex = Me.lstRESULTATS.ListIndex + 1
    End If
End Sub

Private Sub lstRESULTATS_Click()
    NumLigne = Me.lstRESULTATS.ListIndex
    Me.txtCODE.Value = Me.lstRESULTATS.Column(0, NumLigne)
    Me.txtNOM.Value = Me.lstRESULTATS.Column(1, NumLigne)
    Me.txtPRENOM.Value = Me.lstRESULTATS.Column(2, NumLigne)
    Me.txtADRESSE.Value = Me.lstRESULTATS.Column(3, NumLigne)
    Me.txtCP.Value = Me.lstRESULTATS.Column(4, NumLigne)
    Me.txtVILLE.Value = Me.lstRESULTATS.Column(5, NumLigne)
    Me.cboCOMMENTAIRE.Value = Me.lstRESULTATS.Column(6, NumLigne)
End Sub

Private Sub UserForm_Initialize()
    If txtCODE.Value = "" Then
        cboCOMMENTAIRE.Enabled = False
        cmdVALIDER.Enabled = False
    Else
        cboCOMMENTAIRE.Enabled = True
        cmdVALIDER.Enabled = True
    End If
End Sub


Merci d'avance pour votre aide et vos explications !
Alexis
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
23607
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
1
Merci
Bonjour,

Tu as placé ton test à l'initialisation de la userform..... mais à quel moment rempli tu ton champ ?
Car c'est après son remplissage (modification) que tu dois faire ton if....

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources a aidé 104 internautes ce mois-ci

1Alexiiis
Messages postés
38
Date d'inscription
vendredi 14 juin 2013
Dernière intervention
9 décembre 2018
-
Bonjour,

La TextBox se rempli dès que je clique sur une ligne de ma ListBox
jordane45
Messages postés
23607
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
> 1Alexiiis
Messages postés
38
Date d'inscription
vendredi 14 juin 2013
Dernière intervention
9 décembre 2018
-
Oui.... et donc ?
As tu déplacé ton IF comme je te l'ai indiqué ??
1Alexiiis
Messages postés
38
Date d'inscription
vendredi 14 juin 2013
Dernière intervention
9 décembre 2018
> jordane45
Messages postés
23607
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
-
Je viens de le faire.
J'ai laissé à l'initialisation du formulaire le "si la TextBox est vide" et l'autres parti je l'ai mis après le remplissage et ça fonctionne.

Merci beaucoup pour ton explication et ton aide :)

Private Sub lstRESULTATS_Click()
    NumLigne = Me.lstRESULTATS.ListIndexdans la ListBox
    Me.txtCODE.Value = Me.lstRESULTATS.Column(0, NumLigne)
    Me.txtNOM.Value = Me.lstRESULTATS.Column(1, NumLigne)
    Me.txtPRENOM.Value = Me.lstRESULTATS.Column(2, NumLigne)
    Me.txtADRESSE.Value = Me.lstRESULTATS.Column(3, NumLigne)
    Me.txtCP.Value = Me.lstRESULTATS.Column(4, NumLigne)
    Me.txtVILLE.Value = Me.lstRESULTATS.Column(5, NumLigne)
    Me.cboCOMMENTAIRE.Value = Me.lstRESULTATS.Column(6, NumLigne)
    cboCOMMENTAIRE.Enabled = True '******************
    cmdVALIDER.Enabled = True '******************
End Sub

Private Sub UserForm_Initialize()
    If txtCODE.Value = "" Then '******************
        cboCOMMENTAIRE.Enabled = False '******************
        cmdVALIDER.Enabled = False '******************
    End If
End Sub
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.