Déclaration de Variables

J

Jaubi

Guest
Bonjour à tous, Bonjour le Forum,

2 petits points pour commencer ce message :
- cela fait deux mois que j'ai dû m'éloigner du Forum et j'ai peut-être loupé un certain nombre de messages ; désolé pour cette absence indépendante de ma volonté.
- la question qui va suivre a peut-être sa réponse dans les Archives, mais je n'ai pas réussi à faire une recherche car je crois que David a désactivé la fonctionnalité temporairement.

Donc, here is my problème :

* Je déclare des variables "public" dans le code d'un UserForm.
* Ensuite, ces variables prennent telle ou telle valeur dans les Private Sub de ce UserForm en fonction des boutons qui sont cliqués.
* Ensuite, dans un module de mon projet, je cherche à réutiliser ces variables avec les valeurs qu'elles ont prises dans le UserForm.

* Or, alors que mon code s'exécute, je vois bien que les variables prennent la bonne valeur au début (en fonction de l'événement "Click" dans le UserForm), mais lorsque je me retrouve qques instant plus tard dans le module, cela plante et j'ai un message me disant qu'il ne reconnaît pas mes variables.

J'espère que j'ai été assez clair et que qqu'un m'aidera à voir la lumière,

A+ le Forum et merci d'avance.

Jaubi.
 
C

C@thy

Guest
Problèmes avec UserForm

Bonjour Jaubi,

j'ai le même problème que toi, ou peu s'en faut,

j'ai une variable déclarée en public,

dans WorkbookOpen je la mets à 1, dans WorkbookBeforeclose je la mets à 2 et dans un module Test je la mets à 3
et je voulais qu'en fonction de cette variable une image différente s'affiche dans mon UserForm, mais cette variable se remet à vide lorsque j'exécute le code de la UserForm, en plus je modife le Caption de la UserForm, je sauvegarde et quand j'exécute j'ai toujours UserForm1 en Caption...

On a vraiment des problèmes avec ces UF!

C@thy
BipBip.gif
 
J

Jaubi

Guest
Merci pour vos réponses,

Sousou,

* Tu me dis de déclarer mes variables dans le module, mais seront-elles reconnues dans le Code de l'USF qui se déroule avant le Module ?
* Faut-il les déclarer deux fois : une fois dans le code de l'USF, et une fois dans le Code du Module ?
 
P

Pascal76

Guest
Bonjour,

Volilà j'utilise des variables "public" pour des userforms mais je les déclare dans mon module avant mes procédures et je n'ai pas de problèmes je récupère les bonnes valeurs.

Je ne sais pas si cela peut vous aider.

Pascal
 
J

Jaubi

Guest
Alors voilà :

Moi, petit programmeur VB de rien du tout, je viens de faire bien proprement ce que vient de conseiller Pascal76. Je déclare trankilou mes variables en "Variant" dans le Module, et je lance le machin.

Et bien vous savez quoi ? Ca marche à mort !!!

Je propose donc d'élever Pascal76 au rang de héros intersidéral du VB pour Excel.

Merci, Pascal76 et à charge de revanche.

A+, le Forum.

Jaubi.
 
P

Pascal76

Guest
je viens de faire un essai
je lance un userform du workbookopen, je récupère une donnée déclarée public et je lance une procédure dans le module et là il a bien récupéré la valeur.

Private Sub Workbook_Open()
UserForm1.Show
End Sub

Private Sub CommandButton1_Click()
UserForm1.Hide
toto = 1
ess
End Sub

MODULE

Public toto As Integer

Sub ess()
If toto = 1 Then
MsgBox "coucou"
End If
End Sub

Pascal
 
L

LaurentTBT

Guest
Re: Problèmes avec UserForm

Bonjour tout le monde.

C@thy, je crois que Pascal a raison.
Pour que des variables soient utilisables dans toutes les feuilles, que ce soient des modules, des feuilles liées soit à des worksheet, soit au workbook, il faut qu'elles soient déclarées en haut d'un module standart (avec le mot Public devant).
En fait, il n'y a pas, je crois, d'ordre dans les modules. Tu peux même déclarer une variable Public Toto en première ligne du 10ème module, et l'utiliser partout ailleurs, y compris dans workbook_Open, elle conservera sa valeur jusqu'à ce qu'une autre procédure la modifie. (Je viens de le tester avec trois modules)

Bonne journée.
Laurent.
 

Discussions similaires

Statistiques des forums

Discussions
312 755
Messages
2 091 716
Membres
105 056
dernier inscrit
David Primo