Variable ComboBox

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

12 réponses

ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 17 avril 2016 à 20:32
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
ZEPS2 14 Messages postés dimanche 21 décembre 2008Date d'inscription 28 avril 2016 Dernière intervention - 17 avril 2016 à 21:21
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 17 avril 2016 à 22:17
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
Patrice33740 7251 Messages postés dimanche 13 juin 2010Date d'inscription 16 août 2018 Dernière intervention - 18 avril 2016 à 19:20
0
Merci
Bonjour,

Déclares ta variable en Static
Commenter la réponse de Patrice33740
ZEPS2 14 Messages postés dimanche 21 décembre 2008Date d'inscription 28 avril 2016 Dernière intervention - 20 avril 2016 à 11:59
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
cs_MPi 3872 Messages postés mardi 19 mars 2002Date d'inscription 13 juillet 2018 Dernière intervention - 20 avril 2016 à 15:33
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
ZEPS2 14 Messages postés dimanche 21 décembre 2008Date d'inscription 28 avril 2016 Dernière intervention - 20 avril 2016 à 18:08
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 20 avril 2016 à 18:25
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
ZEPS2 14 Messages postés dimanche 21 décembre 2008Date d'inscription 28 avril 2016 Dernière intervention - 20 avril 2016 à 18:49
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 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 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 ...
Commenter la réponse de ZEPS2
cs_MPi 3872 Messages postés mardi 19 mars 2002Date d'inscription 13 juillet 2018 Dernière intervention - Modifié par cs_MPi le 21/04/2016 à 14:56
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
ZEPS2 14 Messages postés dimanche 21 décembre 2008Date d'inscription 28 avril 2016 Dernière intervention - 28 avril 2016 à 10:37
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.