Menu

Utiliser la value d'un OptionButton autre part que dans le Sub

Messages postés
3
Date d'inscription
lundi 4 mars 2019
Dernière intervention
5 mars 2019
-
Bonjour,

J'ai un Formulaire dans lequel je coche soit option essentielle, soit option moyenne, soit option toute.

Les trois premières fonctions sont des procédures évênementielles :
-> Public Sub Option_Essentielle_Click()
-> Public Sub Option_Moyenne_Click()
-> Public Sub Option_Toute_Click()

récupèrent ce que l'utilisateur a choisi sous forme de OptionButton. Il coche soit la case essentielle, moyenne ou toute.

Les trois secondes fonctions :
-> Public Function Essentielle() As Boolean
-> Public Function Moyenne() As Boolean
-> Public Function Toute() As Boolean

sont censées récupérer la valeur booléenne des OptionsButtons pour renvoyer la valeur booléenne de l'option qui est à TRUE.
(Je passe par une function parce que je ne peux pas renvoyer de valeur avec une Sub et je suis obligé d'utiliser une Sub pour pouvoir manipuler les OptionButton)

Et la dernière fonction :
-> Public Sub laquelle()

appelle une variante de GenerPerimetreAction(1, 2 ou 3) qui va avoir une action différente en fonction de quelle option est à TRUE.

MON PROBLEME :
Dans les trois secondes fonctions, il ne rentre jamais dans les conditions :


If Me.Option_Essentielle = True Then
Essentielle = True
End If



If Me.Option_Moyenne = True Then
Moyenne = True
End If



If Me.Option_Toute = True Then
Option = True
End If


J'ai l'impression que les OptionsButtons :
-> Me.Option_Essentielle
-> Me.Option_Moyenne
-> Me.Option_Toute

ne sont déclarés que dans les trois premières fonctions et que je ne peux pas les réutiliser dans d'autres fonctions.

Je ne sais pas comment faire, pouvez - vous m'aider ?

Voici le code ci-dessous :

Public Sub Option_Essentielle_Click()

Me.Option_Essentielle = True
Me.Option_Moyenne = False
Me.Option_Toute = False

End Sub

Public Sub Option_Moyenne_Click()

Me.Option_Essentielle = False
Me.Option_Moyenne = True
Me.Option_Toute = False

End Sub

Public Sub Option_Toute_Click()

Me.Option_Essentielle = False
Me.Option_Moyenne = False
Me.Option_Toute = True

End Sub


--------------------------------------------------------------------


Public Function Essentielle() As Boolean

If Me.Option_Essentielle = True Then
Essentielle = True
End If

End Function

Public Function Moyenne() As Boolean

If Me.Option_Moyenne = True Then
Moyenne = True
End If

End Function

Public Function Toute() As Boolean

If Me.Option_Toute = True Then
Toute = True
End If

End Function


--------------------------------------------------------------------


Public Sub laquelle()

If Essentielle = True Then
Call GenerPerimetreActions(1)
End If

If Moyenne = True Then
Call GenerPerimetreActions(2)
End If

If Toute = True Then
Call GenerPerimetreActions(3)
End If

End Sub
Afficher la suite 

Votre réponse

2 réponses

Messages postés
7588
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 mars 2019
452
0
Merci
bonjour, toutes ces fonctions sont-elles déclarées dans le même module?
les option buttons font-ils partie d'un option group?
peux-tu partager ton fichier?
Commenter la réponse de yg_be
Messages postés
3
Date d'inscription
lundi 4 mars 2019
Dernière intervention
5 mars 2019
0
Merci
Non, ils ne sont pas dans le même OptionGroup et c'est pour ça que ça ne marche pas, mais je vais changer de méthode, je vais utiliser une zone de liste déroulante :

J'aimerais associer une variante de GenerPerimetreActions pour *, Essentielle ou Moyenne.

Voici ma démarche :

1) Je clique sur zone de liste déroulante :


2) En mode création, je clique sur la zone de liste que j'ai ainsi créé :


3) Je vais sur Propriétés :


4) Je nomme mon "Menu_Deroulant" :


5) Quand j'ai créé mon menu déroulant, je l'ai lié à une table avec les possibilités suivantes :


6) Et voici de quelle table précisément je suis allé le chercher :


7) Et voilà le code que je lui ai attribué :

Public Sub Menu_Deroulant_Click()

If Me.[Sensibilité] = "1-Essentielle" Then

Call GenerPerimetreActions(1)

ElseIf Me.[Sensibilité] = "2-Moyenne" Then

Call GenerPerimetreActions(2)

ElseIf Me.[Sensibilité] = "*" Then

Call GenerPerimetreActions(3)

End If

End Sub


MON PROBLEME : Il ne reconnaît pas sensibilité


Comment modifier le code pour que ça marche ?
yg_be
Messages postés
7588
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
26 mars 2019
452 -
[Sensibilité] est-il le nom d'un champ du formulaire?
Commenter la réponse de cest_pas_faux