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

Signaler
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020
-
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020
-
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

1 réponse

Messages postés
32446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 mai 2021
347
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....

Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020

Bonjour,

La TextBox se rempli dès que je clique sur une ligne de ma ListBox
Messages postés
32446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 mai 2021
347 >
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020

Oui.... et donc ?
As tu déplacé ton IF comme je te l'ai indiqué ??
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020
>
Messages postés
32446
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 mai 2021

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