Variable ComboBox

Messages postés
14
Date d'inscription
dimanche 21 décembre 2008
Dernière intervention
28 avril 2016
- - Dernière réponse : ZEPS2
Messages postés
14
Date d'inscription
dimanche 21 décembre 2008
Dernière intervention
28 avril 2016
- 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...
Afficher la suite 

Votre réponse

11 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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 !
Commenter la réponse de ucfoutu
Messages postés
14
Date d'inscription
dimanche 21 décembre 2008
Dernière intervention
28 avril 2016
0
Merci
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
Commenter la réponse de ZEPS2
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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 ) !
Commenter la réponse de ucfoutu
Messages postés
7447
Date d'inscription
dimanche 13 juin 2010
Dernière intervention
15 décembre 2018
0
Merci
Bonjour,

Déclares ta variable en Static
Commenter la réponse de Patrice33740
Messages postés
14
Date d'inscription
dimanche 21 décembre 2008
Dernière intervention
28 avril 2016
0
Merci
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,
Commenter la réponse de ZEPS2
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
0
Merci
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.
Commenter la réponse de cs_MPi
Messages postés
14
Date d'inscription
dimanche 21 décembre 2008
Dernière intervention
28 avril 2016
0
Merci
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 !
Commenter la réponse de ZEPS2
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
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 ) !


Commenter la réponse de ucfoutu
Messages postés
14
Date d'inscription
dimanche 21 décembre 2008
Dernière intervention
28 avril 2016
0
Merci
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 !
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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 ...
Commenter la réponse de ZEPS2
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
0
Merci
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²
Commenter la réponse de cs_MPi
Messages postés
14
Date d'inscription
dimanche 21 décembre 2008
Dernière intervention
28 avril 2016
0
Merci
OK ! merci à vous, c'est tout bon.
J'ai tout repris et là ça fonctionne.

Vous êtes super !
Commenter la réponse de ZEPS2

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.