Utiliser la value d'un OptionButton ailleurs que dans le Sub

Fermé
Utilisateur anonyme - Modifié le 2 mai 2024 à 10:20
yg_be Messages postés 23416 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 janvier 2025 - 5 mars 2019 à 21:24

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

2 réponses

yg_be Messages postés 23416 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 janvier 2025 Ambassadeur 1 557
4 mars 2019 à 21:47
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?
0
Utilisateur anonyme
5 mars 2019 à 11:04
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 ?
0
yg_be Messages postés 23416 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 janvier 2025 1 557
5 mars 2019 à 21:24
[Sensibilité] est-il le nom d'un champ du formulaire?
0