Variable ComboBox

ZEPS2 Messages postés 19 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 avril 2019 - 17 avril 2016 à 19:39
ZEPS2 Messages postés 19 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 avril 2019 - 28 avril 2016 à 10:37
Bonjour,

j'ai un petit problème de variable !
je ne me rappelle plus comment garder en mémoire une valeur de ComboBox une foi qu'elle est fermée.

j'ai une userforme qui s'ouvre avec une combobox.
je souhaite garder la valeur choisi de la ComboBox pour m'en servir dans un autre module du même classeur, mais sur une autre feuille, une foi que celle ci est fermée.
Je ne maitrise pas les tableaux, et cherchais une autre solution.

Merci de votre aide...

11 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 avril 2016 à 20:32
Bonjour,
Une variable déclarée publique dans un module est accessible depuis toutes parts. Déclare donc ainsi la variable à laquelle tu affectes cette valeur !
0
ZEPS2 Messages postés 19 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 avril 2019
17 avril 2016 à 21:21
Merci ucfou !

Mais j'ai deux problèmes :
déclaratrion public, je ne suis pas sûr de bien faire
Et une fois que ma userform contenant ma combobox est fermé, j'ai perdu ma variable. Mais les deux problème se tiennent sûrement !

Tu peux me rappeler simplement pour la variable en publique. De mon coté, je l'ai déclaré en tête de mon module, sur la page du code :

Dim monchoix As Byte => (public à la place de Dim ça ne passe pas.)
Public Sub CommandButton1_Click()
monchoix = ComboBox1.Value
UserForm1.Hide
End Sub

Et "monchoix" s'efface losque je passe sur le module de l'onglet ou je souhaite l'utiliser...qui est un "Private Sub Chart_Activate()", c'est à dire un onglet chart.

En te remerciant encore,

Zeps
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 avril 2016 à 22:17
ce n'est pas dans le module de code de ton userform, que tu dois faire cette déclaration publique, mais sur un module (insertion ===>>> module ) !
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 21
18 avril 2016 à 19:20
Bonjour,

Déclares ta variable en Static
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ZEPS2 Messages postés 19 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 avril 2019
20 avril 2016 à 11:59
Merci à vous de vos réponses. j'essaie de trouver ma solution sur le net, mais je ne dois pas comprendre un truc...:-(

Je reprends :
J'ai ma variable dans une combobox, elle même dans une userform
Je souhaite garder en mémoire la valeur de la combobox, à la fermeture (clic sur OK) de l'userform et l'utiliser dans la procédure événement d'ouverture d'une feuille Charts.
Ma variable je la déclare donc public, mais je n'ai pas de module, puisque j'utilise un événement de ma feuille.
Du coup, ou que je la place, je la perds...je n'ai pas compris !
Merci de me dire comment procéder (sans trop de raccourcie SVP ! :-'( )

En vous remerciant sincèrement,
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
20 avril 2016 à 15:33
Tu n'as pas le choix.
Tu dois insérer un module dans ton projet et tu déclares ta variable en Public tout en haut de ce module (sous les Option... s'il y en a)

Autrement, tu l'inscris dans une feuille (masquée au besoin) et tu vas lire cette cellule quand nécessaire.
0
ZEPS2 Messages postés 19 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 avril 2019
20 avril 2016 à 18:08
bon là, je me sens vraiment con !
ça le fait pas !

effectivement cs_MPI, je peux faire ta deuxième solution, mais j'aimerai qd même comprendre...

Avec un bouton sur ma feuille je déclenche ma userform
Sub afficher_option()
UserForm1.Show
End Sub
je l'ai mis là => ça ne marche pas - pourtant c'est un module
Option Explicit
Public monchoix As ComboBox

avec le bouton OK de la userform, je récupère, normalement :-(, ma variable; Je l'ai mis là, ça ne marche pas.
Option Explicit
Public monchoix As ComboBox

En sélection ma feuille "charts" je déclenche une procédure, je le mets là, ça ne marche pas.
Option Explicit
Public monchoix As ComboBox

dsl, mais je ne comprends pas...

Au secours !
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 avril 2016 à 18:25
Je te suggère une petite promenade, puis de relire calmement mon message plus haut :
ce n'est pas dans le module de code de ton userform, que tu dois faire cette déclaration publique, mais sur un module(insertion ===>>> module ) !


0
ZEPS2 Messages postés 19 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 avril 2019
20 avril 2016 à 18:49
Heuuuu ! il me semble avoir tout essayé.
Et en premier j'ai suivi ta recommandation.

Mais qd je fais =>
Avec un bouton sur ma feuille je déclenche ma userform => donc module
Sub afficher_option()
UserForm1.Show
End Sub
je l'ai mis là => ça ne marche pas - pourtant c'est un module
Option Explicit
Public monchoix As ComboBox

A ton avis pourquoi ça ne marche pas...

Y'a un truc que je ne vois pas (j'y retourne immédiatement, comme disait l'autre ;-))

un grand merci !
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
21 avril 2016 à 08:10
C'est quand-même fort du café !
Tu l'as ajouté comment, ton userform ? Tu as bien fait insertion ==>> Userform, non ? et il t'était bien proposé d'autre choses que UserForm, non ? Parmi lesquelles MODULE, non ?
Bref ...
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
Modifié par cs_MPi le 21/04/2016 à 14:56
Lorsque tu insères un module, il se nomme Module1 par défaut s'il est seul être créé)
Dans ce module, ça devrait être écrit comme suit
Option Explicit  ' peut ne pas être inscrit, mais préférable de l'avoir

Public monchoix As String

Sub afficher_option()
UserForm1.Show
End Sub


Ceci dit, tu ne dois plus avoir ceci dans aucun autre de tes modules (Userform ou feuille)
Public monchoix As String
'ou
Dim monchoix As String


J'ai mis As String parce que je pense que c'est le texte du combobox que tu veux conserver dans tes procédures

MPi²
0
ZEPS2 Messages postés 19 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 avril 2019
28 avril 2016 à 10:37
OK ! merci à vous, c'est tout bon.
J'ai tout repris et là ça fonctionne.

Vous êtes super !
0
Rejoignez-nous