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

Résolu
1Alexiiis
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020
- 24 nov. 2018 à 23:16
1Alexiiis
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020
- 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

1 réponse

jordane45
Messages postés
35481
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 mai 2022
356
24 nov. 2018 à 23:52
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....

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

Modifié le 25 nov. 2018 à 01:24
Bonjour,

La TextBox se rempli dès que je clique sur une ligne de ma ListBox
0
jordane45
Messages postés
35481
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 mai 2022
356 > 1Alexiiis
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020

25 nov. 2018 à 07:29
Oui.... et donc ?
As tu déplacé ton IF comme je te l'ai indiqué ??
0
1Alexiiis
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020
> jordane45
Messages postés
35481
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 mai 2022

25 nov. 2018 à 14:35
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
0