Problème pour Boutons d'Action
Bonjour à tous,
j'ai un formulaire pour gérer les adhérant d'une association.
J'ai 2 boutons d'action et je n'arrive pas de le faire marché correctement.
Si ça marche il devrait quand je clique sur le bouton d'action qui s’appelle "Espèces" le ComboBox "cboespeces" il devrait s'ouvrir
et le bouton d'action qui s’appelle "Chèque" et la cbocheque devrait se fermer.
Voir le code:
Private Sub lbleespeces_Click()
End Sub
Private Sub optespeces_Click()
If Me.optespeces.Value = "Non" Then
Me.cboespeces.Visible = False
Me.cboespeces.Visible = False
Else
Me.cboespeces.Visible = True
Me.optespeces.Visible = True
End If
End Sub
Private Sub optcheque_Click()
If Me.optcheque.Value = "Non" Then
Me.cbocheque.Visible = False
Me.cbocheque.Visible = False
Else
Me.cbocheque.Visible = True
Me.optcheque.Visible = True
End If
End Sub
Private Sub cboespeces_Change()
Me.cboespeces.Enabled = Me.cboespeces.Value = "Oui"
Me.cboespeces.Locked = Me.cboespeces.Value = "Non"
If Me.cboespeces.Value = "Non" Then
cboespeces.Visible = True
optespeces.Visible = True
lbleespeces.Visible = True
Else
cboespeces.Visible = False
optespeces.Visible = False
lbleespeces.Visible = False
End If
Me.cboespeces = Format(Me.cboespeces, "# ##0.00 €")
End Sub
Private Sub cbocheque_Change()
Me.cbocheque.Enabled = Me.cbocheque.Value = "Oui"
Me.cbocheque.Locked = Me.cbocheque.Value = "Non"
If Me.cbocheque.Value = "Non" Then
cbocheque.Visible = True
optcheque.Visible = True
lblcheque.Visible = True
Else
cbocheque.Visible = False
optcheque.Visible = False
lblcheque.Visible = False
End If
Me.cbocheque = Format(Me.cbocheque, "# ##0.00 €")
End Subet aussi le fichier:
Pouvez vous d'aider?
Merci de votre réponse.
Bonjour le fil,
COMPAN, quand vous coder :
If Me.cboespeces.Value = "Non" Then
Cela ne peut pas fonctionner, Me.cboespeces.Value renvoie : True ou False
Petite question pourquoi coller deux liste déroulantes qui ont le même contenu, cboEspeces et cboCheque. Pour ma part je mettrais plutôt une zone de texte tboEspeces (cela vous permet de taper une valeur particulière) et une zone de liste déroulante pour les chéques. Mais bon même là c'est ambiguë.
Sinon vous pouvez effectuer les changements sur le clic des boutons d'option :
Private Sub optCheque_Click()
tboEspeces.Visible = Not (optCheque.Value = True)
cboCheque.Visible = (optCheque.Value = True)
lblCheque.Visible = (optCheque.Value = True)
lblEspeces.Visible = Not (optCheque.Value = True)
End Sub
Private Sub optEspeces_Click()
cboCheque.Visible = Not (optEspeces.Value = True)
tboEspeces.Visible = (optEspeces.Value = True)
lblEspeces.Visible = (optEspeces.Value = True)
lblCheque.Visible = Not (optEspeces.Value = True)
End SubConcernant les formats du tableau laissez Excel le gérer il le fait très bien vous lui passez un double et c'est tout. Par contre vous pouvez mettre la valeur des listes déroulantes au bon format mais il est préférable de le faire quand vous charger les données dans la lite.
Exemple dans le module de votre formulaire :
Private Const CURRENCY_FORMAT = "# ##0.00 €"
Private Sub UserForm_Initialize()
'...
'...
InitLists '// Chargement des listes
End Sub
Private Sub InitLists()
With Civilite
.List = VBA.Array("Madame", "Monsieur", "Maître", "Docteur")
.ListIndex = -1
End With
With MontantCotisation
.List = VBA.Array(Format$(0, CURRENCY_FORMAT), _
Format$("120,00", CURRENCY_FORMAT), _
Format$("165,00", CURRENCY_FORMAT))
End With
With EsCh
.List = VBA.Array(vbNullString, "Espèces", "Chèque", "Virement")
End With
End Submerci de votre aide fanfan38 et Jean-Paul tout fonctionne bien.
Merci.
