OVH Cloud OVH Cloud

portée d'un procédure

12 réponses
Avatar
lolo
Bonjour =E0 toutes et =E0 tous,

J'ai une proc=E9dure que j'ai d=E9fini comme "public" dans un=20
formulaire. Ce formulaire contient un bouton qui ouvre un=20
autre formualire lorsqu'on l'active. Dans cet autre=20
formulaire je fais appel =E0 la proc=E9dure publique que=20
j'avais pr=E9c=E9demment d=E9fini...et l=E0 le programme ne=20
reconnait pas le nom de la proc=E9dure en question. Je=20
croyais pourtant que les proc=E9dures d=E9finies=20
comme "public" pouvaient =EAtre appel=E9es de n'importe o=F9=20
dans un projet ?

Merci d'avance =E0 ceux qui m'=E9claireront.

lolo

10 réponses

1 2
Avatar
Vincent.
Salut !
A tout hasard, comment s'appelle la procédure et le module
dans lequel est cette procédure ?
A+

V.

-----Message d'origine-----
Bonjour à toutes et à tous,

J'ai une procédure que j'ai défini comme "public" dans un
formulaire. Ce formulaire contient un bouton qui ouvre un
autre formualire lorsqu'on l'active. Dans cet autre
formulaire je fais appel à la procédure publique que
j'avais précédemment défini...et là le programme ne
reconnait pas le nom de la procédure en question. Je
croyais pourtant que les procédures définies
comme "public" pouvaient être appelées de n'importe où
dans un projet ?

Merci d'avance à ceux qui m'éclaireront.

lolo
.



Avatar
papou
Bonjour lolo
Tout ce que tu déclares dans un UserForm ou une Feuille reste Private
Pour rendre accessible une procédure ou une variable à l'ensemble des
objets, il faut la placer dans un module et la faire précéder de Public
Cordialement
Pascal


"lolo" a écrit dans le message de
news:099f01c3af66$086dbb80$
Bonjour à toutes et à tous,

J'ai une procédure que j'ai défini comme "public" dans un
formulaire. Ce formulaire contient un bouton qui ouvre un
autre formualire lorsqu'on l'active. Dans cet autre
formulaire je fais appel à la procédure publique que
j'avais précédemment défini...et là le programme ne
reconnait pas le nom de la procédure en question. Je
croyais pourtant que les procédures définies
comme "public" pouvaient être appelées de n'importe où
dans un projet ?

Merci d'avance à ceux qui m'éclaireront.

lolo
Avatar
Denis Michon
Bonjour Lolo,

Lorsque ta procédure est défini ailleurs que dans un module standard, tu dois utiliser cette syntaxe pour l'appeler :

NomDuModuleDeClasse Point NOmDeLaProcédure

Userform1.Message

Message étant une procédure situé dans le formulaire "userform1".


Voici la procédure Message

'--------------------
Sub Message()

MsgBox "Bonjour"

End Sub
'--------------------


Salutations!



"lolo" a écrit dans le message de news:099f01c3af66$086dbb80$
Bonjour à toutes et à tous,

J'ai une procédure que j'ai défini comme "public" dans un
formulaire. Ce formulaire contient un bouton qui ouvre un
autre formualire lorsqu'on l'active. Dans cet autre
formulaire je fais appel à la procédure publique que
j'avais précédemment défini...et là le programme ne
reconnait pas le nom de la procédure en question. Je
croyais pourtant que les procédures définies
comme "public" pouvaient être appelées de n'importe où
dans un projet ?

Merci d'avance à ceux qui m'éclaireront.

lolo
Avatar
Denis Michon
Bonjour Papou,


As-tu réellement testé ?

;-)


Salutations!


"papou" <nspm> a écrit dans le message de news:
Bonjour lolo
Tout ce que tu déclares dans un UserForm ou une Feuille reste Private
Pour rendre accessible une procédure ou une variable à l'ensemble des
objets, il faut la placer dans un module et la faire précéder de Public
Cordialement
Pascal


"lolo" a écrit dans le message de
news:099f01c3af66$086dbb80$
Bonjour à toutes et à tous,

J'ai une procédure que j'ai défini comme "public" dans un
formulaire. Ce formulaire contient un bouton qui ouvre un
autre formualire lorsqu'on l'active. Dans cet autre
formulaire je fais appel à la procédure publique que
j'avais précédemment défini...et là le programme ne
reconnait pas le nom de la procédure en question. Je
croyais pourtant que les procédures définies
comme "public" pouvaient être appelées de n'importe où
dans un projet ?

Merci d'avance à ceux qui m'éclaireront.

lolo
Avatar
papou
Bonjour Denis
Je vais répondre avec méfiance : Oui mais peut-être pas complètement :-))
Voilà ce que je teste et qui ne me renvoie rien :
Dans le code d'un Userform
Public LaVariable As String
Private Sub UserForm_Initialize()
LaVariable = "Testons"
End Sub
Private Sub CommandButton1_Click()
Call EssaisLe
End Sub
Dans un module
Sub EssaisLe()
MsgBox LaVariable
Unload UserForm1
End Sub

Cordialement
Pascal


"Denis Michon" a écrit dans le message de
news:v64vb.41930$
Bonjour Papou,


As-tu réellement testé ?

;-)


Salutations!


"papou" <nspm> a écrit dans le message de
news:

Bonjour lolo
Tout ce que tu déclares dans un UserForm ou une Feuille reste Private
Pour rendre accessible une procédure ou une variable à l'ensemble des
objets, il faut la placer dans un module et la faire précéder de Public
Cordialement
Pascal


"lolo" a écrit dans le message de
news:099f01c3af66$086dbb80$
Bonjour à toutes et à tous,

J'ai une procédure que j'ai défini comme "public" dans un
formulaire. Ce formulaire contient un bouton qui ouvre un
autre formualire lorsqu'on l'active. Dans cet autre
formulaire je fais appel à la procédure publique que
j'avais précédemment défini...et là le programme ne
reconnait pas le nom de la procédure en question. Je
croyais pourtant que les procédures définies
comme "public" pouvaient être appelées de n'importe où
dans un projet ?

Merci d'avance à ceux qui m'éclaireront.

lolo





Avatar
OK. Merci à Papou et Denis pour leurs réponses. Je pensais
que lorsqu'un formulaire était appelé (par myuserform.show
()) depuis un premier formulaire, il avait accès à toutes
les procédures déclarées dans ce premier formulaire. Ce
n'est donc pas le cas... et ça m'embête bien.

-----Message d'origine-----
Bonjour lolo
Tout ce que tu déclares dans un UserForm ou une Feuille
reste Private

Pour rendre accessible une procédure ou une variable à
l'ensemble des

objets, il faut la placer dans un module et la faire
précéder de Public

Cordialement
Pascal


"lolo" a écrit dans
le message de

news:099f01c3af66$086dbb80$
Bonjour à toutes et à tous,

J'ai une procédure que j'ai défini comme "public" dans un
formulaire. Ce formulaire contient un bouton qui ouvre un
autre formualire lorsqu'on l'active. Dans cet autre
formulaire je fais appel à la procédure publique que
j'avais précédemment défini...et là le programme ne
reconnait pas le nom de la procédure en question. Je
croyais pourtant que les procédures définies
comme "public" pouvaient être appelées de n'importe où
dans un projet ?

Merci d'avance à ceux qui m'éclaireront.

lolo


.



Avatar
Merci pour ta réponse. La procédure
s'appelle "RemplitOnglet()" et elle se trouve non pas dans
un module mais dans un userform qui s'appelle "fmSinistre".


-----Message d'origine-----
Salut !
A tout hasard, comment s'appelle la procédure et le
module

dans lequel est cette procédure ?
A+

V.

-----Message d'origine-----
Bonjour à toutes et à tous,

J'ai une procédure que j'ai défini comme "public" dans
un


formulaire. Ce formulaire contient un bouton qui ouvre
un


autre formualire lorsqu'on l'active. Dans cet autre
formulaire je fais appel à la procédure publique que
j'avais précédemment défini...et là le programme ne
reconnait pas le nom de la procédure en question. Je
croyais pourtant que les procédures définies
comme "public" pouvaient être appelées de n'importe où
dans un projet ?

Merci d'avance à ceux qui m'éclaireront.

lolo
.

.





Avatar
Merci pour ta réponse. La procédure
s'appelle "RemplitOnglet()" et elle se trouve non pas dans
un module mais dans un userform qui s'appelle "fmSinistre".


-----Message d'origine-----
Salut !
A tout hasard, comment s'appelle la procédure et le
module

dans lequel est cette procédure ?
A+

V.

-----Message d'origine-----
Bonjour à toutes et à tous,

J'ai une procédure que j'ai défini comme "public" dans
un


formulaire. Ce formulaire contient un bouton qui ouvre
un


autre formualire lorsqu'on l'active. Dans cet autre
formulaire je fais appel à la procédure publique que
j'avais précédemment défini...et là le programme ne
reconnait pas le nom de la procédure en question. Je
croyais pourtant que les procédures définies
comme "public" pouvaient être appelées de n'importe où
dans un projet ?

Merci d'avance à ceux qui m'éclaireront.

lolo
.

.





Avatar
michdenis
Bonjour Papou,

Ta procédure ne fonctionne pas parce que tu n'as pas utilisé la bonne syntaxe.

Essaie comme ceci :


Sub EssaisLe()
MsgBox Userform1.LaVariable
Unload UserForm1
End Sub


Salutations!




"papou" <nspm> a écrit dans le message de news:
Bonjour Denis
Je vais répondre avec méfiance : Oui mais peut-être pas complètement :-))
Voilà ce que je teste et qui ne me renvoie rien :
Dans le code d'un Userform
Public LaVariable As String
Private Sub UserForm_Initialize()
LaVariable = "Testons"
End Sub
Private Sub CommandButton1_Click()
Call EssaisLe
End Sub
Dans un module
Sub EssaisLe()
MsgBox LaVariable
Unload UserForm1
End Sub

Cordialement
Pascal


"Denis Michon" a écrit dans le message de
news:v64vb.41930$
Bonjour Papou,


As-tu réellement testé ?

;-)


Salutations!


"papou" <nspm> a écrit dans le message de
news:

Bonjour lolo
Tout ce que tu déclares dans un UserForm ou une Feuille reste Private
Pour rendre accessible une procédure ou une variable à l'ensemble des
objets, il faut la placer dans un module et la faire précéder de Public
Cordialement
Pascal


"lolo" a écrit dans le message de
news:099f01c3af66$086dbb80$
Bonjour à toutes et à tous,

J'ai une procédure que j'ai défini comme "public" dans un
formulaire. Ce formulaire contient un bouton qui ouvre un
autre formualire lorsqu'on l'active. Dans cet autre
formulaire je fais appel à la procédure publique que
j'avais précédemment défini...et là le programme ne
reconnait pas le nom de la procédure en question. Je
croyais pourtant que les procédures définies
comme "public" pouvaient être appelées de n'importe où
dans un projet ?

Merci d'avance à ceux qui m'éclaireront.

lolo





Avatar
michdenis
Bonjour,

"il avait accès à toutes les procédures déclarées dans ce premier formulaire"

Et c'est vrai si la procédure appelée est une procédure CONVENTIONNELLE par opposition à une procédure ÉVÉNEMENTIELLE.

Dans le premier cas, à moins que tu ais utilisé le mot "Private" dans la déclaration de la procédure, Une procédure
conventionnelle est disponible dans d'autres modules de classe (module feuille , formulaire..ou module standard.) à la
condition que son appel soit fait de cette manière :

Userform1.LaMacroQuonVeutAppeler

Il s'agit simplement d'identifier le module de classe où l'on a défini la procédure.

Le même principe s'applique pour des variables qu'on aurait défini comme Public dans un module de classe


Salutations!



a écrit dans le message de news:0b3c01c3af76$9067a860$
OK. Merci à Papou et Denis pour leurs réponses. Je pensais
que lorsqu'un formulaire était appelé (par myuserform.show
()) depuis un premier formulaire, il avait accès à toutes
les procédures déclarées dans ce premier formulaire. Ce
n'est donc pas le cas... et ça m'embête bien.

-----Message d'origine-----
Bonjour lolo
Tout ce que tu déclares dans un UserForm ou une Feuille
reste Private

Pour rendre accessible une procédure ou une variable à
l'ensemble des

objets, il faut la placer dans un module et la faire
précéder de Public

Cordialement
Pascal


"lolo" a écrit dans
le message de

news:099f01c3af66$086dbb80$
Bonjour à toutes et à tous,

J'ai une procédure que j'ai défini comme "public" dans un
formulaire. Ce formulaire contient un bouton qui ouvre un
autre formualire lorsqu'on l'active. Dans cet autre
formulaire je fais appel à la procédure publique que
j'avais précédemment défini...et là le programme ne
reconnait pas le nom de la procédure en question. Je
croyais pourtant que les procédures définies
comme "public" pouvaient être appelées de n'importe où
dans un projet ?

Merci d'avance à ceux qui m'éclaireront.

lolo


.



1 2