Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Userform - passer des variables

7 réponses
Avatar
Sophie
Bonjour à tous !

Je travaille avec Excel 2000. Je me suis créer un Userform et je l'utilise
avec la macro suivante:

--------------------------
Option Explicit
Public categorie
Public date1


Sub copier_source()

'définir les chemins source et destination
cheminsource = "c:\test\"
chemindest = "c:\test\travail\"
nomdestination = "donnee source.txt"


'*** partie de code pour utiliser une boite de dialogue*********'
'Affichage du userform
'Load UserForm1
'UserForm1.Show
'MsgBox ("categorie = " & categorie & " et date1 = " & date1)
'***************************************************************

*** mon code de traitement ***

End Sub
--------------------------------




J'ai aussi ce code dans le bouton OK de mon Userform
J'ai un text box et un combobox
----------------------------
Private Sub CommandButton1_Click()

categorie = ComboBox1.Value
date1 = TextBox1.Value

MsgBox ("categorie = " & categorie & "et date1 = " & date1)

UserForm1.hide
Unload UserForm1


End Sub
-----------------------------


Mon problème est que je voudrais utiliser la valeur que retourne mon text
box et mon combobox dans ma procedure mais je teste la valeur en faisant
afficher avec un msgbox mais de retour dans ma procedure, la valeur est
vide.

Est-ce que quelqu'un sait ce que je ne fais pas de bien ?

Aussi, comment remplir mon combobox ? presentement, j'ai mis un bouton dans
mon userform qui le fait quand on clique dessus avec ce code:

-----------------
Private Sub CommandButton3_Click()
'Remplissage de la liste de choix
ComboBox1.AddItem "Cadre"
ComboBox1.AddItem "Soutien"
ComboBox1.AddItem "Horaire"

End Sub
------------------


Merci de votre attention.

Sophie

7 réponses

Avatar
Pascal Engelmajer
Salut,
--------------------------
Option Explicit
Public categorie
Public date1
Est-ce bien dans un module standard ?

Et non dans le module de code de l'userform ?

Mon problème est que je voudrais utiliser la valeur que retourne mon text
box et mon combobox dans ma procedure mais je teste la valeur en faisant
afficher avec un msgbox mais de retour dans ma procedure, la valeur est
vide.
Aussi, comment remplir mon combobox ?


il suffit d'écrire dedans en mode création
------------------

--
Amicalement.
Pascal
"il n'y a pas de vent favorable pour celui qui ne sait pas ou il va."
Sénèque.
http://www.ilyapa.net/excel

Avatar
Patrick
Bonjour,

1. Pour remplir la ComboBox automatiquement au moment de l'affiche de la
Form (boite de dialogue), il faut utiliser événement UserForm.Initialize.
Pour afficher une Form, il suffit d'utiliser le code UserForm1.Show.

2. Pour récupérer la valeur d'une zone de texte, il faut utiliser la
propriété Text comme ceci Text1.Text (qui renvoie une donnée de type
String).
Pour récupérer la valeur d'une ComboBox, il faut utiliser sa propriété
ListIndex qui renvoie l'index (la première valeur sélectionnée a l'index 0)
de la valeur sélectionnée. Ensuite, en fonction de cet index, on sait quelle
est la valeur qui lui correspond (dans ton cas, l'index 0 correspond à la
valeur "Cadre").

espère avoir été clair. Bon courage.

--
Patrick

"Sophie" wrote in message
news:%23VutD2%
Bonjour à tous !

Je travaille avec Excel 2000. Je me suis créer un Userform et je
l'utilise

avec la macro suivante:

--------------------------
Option Explicit
Public categorie
Public date1


Sub copier_source()

'définir les chemins source et destination
cheminsource = "c:test"
chemindest = "c:testtravail"
nomdestination = "donnee source.txt"


'*** partie de code pour utiliser une boite de dialogue*********'
'Affichage du userform
'Load UserForm1
'UserForm1.Show
'MsgBox ("categorie = " & categorie & " et date1 = " & date1)
'***************************************************************

*** mon code de traitement ***

End Sub
--------------------------------




J'ai aussi ce code dans le bouton OK de mon Userform
J'ai un text box et un combobox
----------------------------
Private Sub CommandButton1_Click()

categorie = ComboBox1.Value
date1 = TextBox1.Value

MsgBox ("categorie = " & categorie & "et date1 = " & date1)

UserForm1.hide
Unload UserForm1


End Sub
-----------------------------


Mon problème est que je voudrais utiliser la valeur que retourne mon text
box et mon combobox dans ma procedure mais je teste la valeur en faisant
afficher avec un msgbox mais de retour dans ma procedure, la valeur est
vide.

Est-ce que quelqu'un sait ce que je ne fais pas de bien ?

Aussi, comment remplir mon combobox ? presentement, j'ai mis un bouton
dans

mon userform qui le fait quand on clique dessus avec ce code:

-----------------
Private Sub CommandButton3_Click()
'Remplissage de la liste de choix
ComboBox1.AddItem "Cadre"
ComboBox1.AddItem "Soutien"
ComboBox1.AddItem "Horaire"

End Sub
------------------


Merci de votre attention.

Sophie






Avatar
Nicolas B.
Salut,

Première question :
UserForm1.hide
Unload UserForm1
Récupère les valeurs avant de faire Unload :


userform1.hide
Valeur=TextBox1.value
unload Userform1


2e question :
Si tu veux remplir ton combobox à l'ouverture du UserForm, tu peux passer
par la procédure événementielle Activate :

Private Sub UserForm_Activate()
'...
End Sub


A+
--
Nicolas B.


Bonjour à tous !

Je travaille avec Excel 2000. Je me suis créer un Userform et je
l'utilise avec la macro suivante:

--------------------------
Option Explicit
Public categorie
Public date1


Sub copier_source()

'définir les chemins source et destination
cheminsource = "c:test"
chemindest = "c:testtravail"
nomdestination = "donnee source.txt"


'*** partie de code pour utiliser une boite de dialogue*********'
'Affichage du userform
'Load UserForm1
'UserForm1.Show
'MsgBox ("categorie = " & categorie & " et date1 = " & date1)
'***************************************************************

*** mon code de traitement ***

End Sub
--------------------------------




J'ai aussi ce code dans le bouton OK de mon Userform
J'ai un text box et un combobox
----------------------------
Private Sub CommandButton1_Click()

categorie = ComboBox1.Value
date1 = TextBox1.Value

MsgBox ("categorie = " & categorie & "et date1 = " & date1)

UserForm1.hide
Unload UserForm1


End Sub
-----------------------------


Mon problème est que je voudrais utiliser la valeur que retourne mon
text box et mon combobox dans ma procedure mais je teste la valeur en
faisant afficher avec un msgbox mais de retour dans ma procedure, la
valeur est vide.

Est-ce que quelqu'un sait ce que je ne fais pas de bien ?

Aussi, comment remplir mon combobox ? presentement, j'ai mis un
bouton dans mon userform qui le fait quand on clique dessus avec ce
code:

-----------------
Private Sub CommandButton3_Click()
'Remplissage de la liste de choix
ComboBox1.AddItem "Cadre"
ComboBox1.AddItem "Soutien"
ComboBox1.AddItem "Horaire"

End Sub
------------------


Merci de votre attention.

Sophie


Avatar
Pierre CFI [mvp]
bonjour
déclares tes variables dans un module standart, pas dans le module de classe du form
Insertion/module standart

--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Sophie" a écrit dans le message de news:%23VutD2%
Bonjour à tous !

Je travaille avec Excel 2000. Je me suis créer un Userform et je l'utilise
avec la macro suivante:

--------------------------
Option Explicit
Public categorie
Public date1


Sub copier_source()

'définir les chemins source et destination
cheminsource = "c:test"
chemindest = "c:testtravail"
nomdestination = "donnee source.txt"


'*** partie de code pour utiliser une boite de dialogue*********'
'Affichage du userform
'Load UserForm1
'UserForm1.Show
'MsgBox ("categorie = " & categorie & " et date1 = " & date1)
'***************************************************************

*** mon code de traitement ***

End Sub
--------------------------------




J'ai aussi ce code dans le bouton OK de mon Userform
J'ai un text box et un combobox
----------------------------
Private Sub CommandButton1_Click()

categorie = ComboBox1.Value
date1 = TextBox1.Value

MsgBox ("categorie = " & categorie & "et date1 = " & date1)

UserForm1.hide
Unload UserForm1


End Sub
-----------------------------


Mon problème est que je voudrais utiliser la valeur que retourne mon text
box et mon combobox dans ma procedure mais je teste la valeur en faisant
afficher avec un msgbox mais de retour dans ma procedure, la valeur est
vide.

Est-ce que quelqu'un sait ce que je ne fais pas de bien ?

Aussi, comment remplir mon combobox ? presentement, j'ai mis un bouton dans
mon userform qui le fait quand on clique dessus avec ce code:

-----------------
Private Sub CommandButton3_Click()
'Remplissage de la liste de choix
ComboBox1.AddItem "Cadre"
ComboBox1.AddItem "Soutien"
ComboBox1.AddItem "Horaire"

End Sub
------------------


Merci de votre attention.

Sophie






Avatar
Julien
Salut,

quand tu fais :
UserForm1.hide : tu caches la fenêtre qui reste en mémoire avec ses données
(notamment le contenu des textbox et autre contrôles)

Et quand tu fais
Unload UserForm1 : tu effaces la fenêtre de la mémoire (et ses données) et
donc de l'écran.

Il vaut mieux que tu fasses :

UserForm1.hide
' Insère ici le traitement des données saisie dans les text/combobox
unload userform1 'pour définitivement effacer UserForm1

Julien

"Sophie" a écrit dans le message de
news:%23VutD2%
Bonjour à tous !

Je travaille avec Excel 2000. Je me suis créer un Userform et je
l'utilise

avec la macro suivante:

--------------------------
Option Explicit
Public categorie
Public date1


Sub copier_source()

'définir les chemins source et destination
cheminsource = "c:test"
chemindest = "c:testtravail"
nomdestination = "donnee source.txt"


'*** partie de code pour utiliser une boite de dialogue*********'
'Affichage du userform
'Load UserForm1
'UserForm1.Show
'MsgBox ("categorie = " & categorie & " et date1 = " & date1)
'***************************************************************

*** mon code de traitement ***

End Sub
--------------------------------




J'ai aussi ce code dans le bouton OK de mon Userform
J'ai un text box et un combobox
----------------------------
Private Sub CommandButton1_Click()

categorie = ComboBox1.Value
date1 = TextBox1.Value

MsgBox ("categorie = " & categorie & "et date1 = " & date1)

UserForm1.hide
Unload UserForm1


End Sub
-----------------------------


Mon problème est que je voudrais utiliser la valeur que retourne mon text
box et mon combobox dans ma procedure mais je teste la valeur en faisant
afficher avec un msgbox mais de retour dans ma procedure, la valeur est
vide.

Est-ce que quelqu'un sait ce que je ne fais pas de bien ?

Aussi, comment remplir mon combobox ? presentement, j'ai mis un bouton
dans

mon userform qui le fait quand on clique dessus avec ce code:

-----------------
Private Sub CommandButton3_Click()
'Remplissage de la liste de choix
ComboBox1.AddItem "Cadre"
ComboBox1.AddItem "Soutien"
ComboBox1.AddItem "Horaire"

End Sub
------------------


Merci de votre attention.

Sophie






Avatar
Cad
pour la deuxieme partie de ta question il faut placer ton
code dans

Private Sub UserForm_Initialize()
ComboBox1.AddItem "Cadre"
ComboBox1.AddItem "Soutien"
ComboBox1.AddItem "Horaire"

end sub





-----Message d'origine-----
Bonjour à tous !

Je travaille avec Excel 2000. Je me suis créer un
Userform et je l'utilise

avec la macro suivante:

--------------------------
Option Explicit
Public categorie
Public date1


Sub copier_source()

'définir les chemins source et destination
cheminsource = "c:test"
chemindest = "c:testtravail"
nomdestination = "donnee source.txt"


'*** partie de code pour utiliser une boite de
dialogue*********'

'Affichage du userform
'Load UserForm1
'UserForm1.Show
'MsgBox ("categorie = " & categorie & " et date1 = " &
date1)

'*********************************************************
******


*** mon code de traitement ***

End Sub
--------------------------------




J'ai aussi ce code dans le bouton OK de mon Userform
J'ai un text box et un combobox
----------------------------
Private Sub CommandButton1_Click()

categorie = ComboBox1.Value
date1 = TextBox1.Value

MsgBox ("categorie = " & categorie & "et date1 = " &
date1)


UserForm1.hide
Unload UserForm1


End Sub
-----------------------------


Mon problème est que je voudrais utiliser la valeur que
retourne mon text

box et mon combobox dans ma procedure mais je teste la
valeur en faisant

afficher avec un msgbox mais de retour dans ma procedure,
la valeur est

vide.

Est-ce que quelqu'un sait ce que je ne fais pas de bien ?

Aussi, comment remplir mon combobox ? presentement, j'ai
mis un bouton dans

mon userform qui le fait quand on clique dessus avec ce
code:


-----------------
Private Sub CommandButton3_Click()
'Remplissage de la liste de choix
ComboBox1.AddItem "Cadre"
ComboBox1.AddItem "Soutien"
ComboBox1.AddItem "Horaire"

End Sub
------------------


Merci de votre attention.

Sophie




.



Avatar
Sophie
Merci à tous de vos très bons conseils, ça fonctionne très bien.

J'ai fait le traitement de mes valeurs avant de faire le unload de la boite
et pour ma 2e question, j'ai utilisé userform_initialize.


Merci encore

Sophie