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
235
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
235
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
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
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
23 août 2018
20
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
235
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
235
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
23 août 2018
20
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