Appel Procedure

cs_olive73 Messages postés 61 Date d'inscription vendredi 1 octobre 2004 Statut Membre Dernière intervention 1 octobre 2009 - 21 juil. 2006 à 15:30
pymaster Messages postés 74 Date d'inscription vendredi 14 juillet 2006 Statut Membre Dernière intervention 14 août 2006 - 21 juil. 2006 à 20:15
Salut,

A partir d'un Form, je veux appeler une procedure qui dans un autre Form.
J'ai mis ma procedure en Public. Pour l'appel j'ai essaye Nom_Procedure( ); Call Nom_Procedure( ); Form.Nom_Procedure( ).
A chaque fois j'ai la meme erreur lors de la compil : Name 'Nom_Procedure' is not declared.

Est-ce que quelqu'un a une solution ?

D'acance merci

8 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
21 juil. 2006 à 15:40
Que veux-tu dire par Form.Nom_Procedure( )

Il faut que tu mette NomDeTaForm.Nom_Procedure()

Si ta procedure se trouve dans une feuille que tu as appelé Ecran2 par exemple, tu devra mettre Ecran2.Nom_Procedure(). C'est moi ça marche comme ça.

Sevyc64  (alias Casy)

<hr /># LE PARTAGE EST NOTRE FORCE #
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
21 juil. 2006 à 15:40
Salut
si ta procedure est déclaré en public nomprocedure seul devrai suffir

 Drikce 06
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
21 juil. 2006 à 15:42
j'ai essayé chez moi nomprocedure seul sa marche

 Drikce 06
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
21 juil. 2006 à 15:44
non sa marche si c'est un module mais dans une autre form c'est nomform.nomprocedure()

 Drikce 06
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_olive73 Messages postés 61 Date d'inscription vendredi 1 octobre 2004 Statut Membre Dernière intervention 1 octobre 2009
21 juil. 2006 à 16:35
Salut,

Ma procedure est declaree en publique, mais quand je l'appelle peu importe si j'utilise nomprocedure( ) ou nomform.nomprocedure( ), j'ai une erreur a la compil :-((
0
pymaster Messages postés 74 Date d'inscription vendredi 14 juillet 2006 Statut Membre Dernière intervention 14 août 2006
21 juil. 2006 à 19:07
bonjour

Est tu sur que tout est bien fait comme tu le dit ??

Par exemple si tu a un formulaire "monForm"

Public Class monForm

public sub maSub()

end class


Dans ton autre form tu peux faire

monForm.maSub()


si tout est beau,
Est ce que tu est bien en VB.NET ?
Est ce que l'erreur est avant ou durant l'exécution ?
Quel est le message d'erreur, car le premier que tu nous a donné n'est valide que si tu fessais maSub() et non pas monForm.MaSUb()

Bonne chance !
PY
0
cs_olive73 Messages postés 61 Date d'inscription vendredi 1 octobre 2004 Statut Membre Dernière intervention 1 octobre 2009
21 juil. 2006 à 19:57
Salut,

Sur mon poste au boulot c'est ce qu'il se passe. Sur mon poste perso de la maison, en mettant bien
Public Sub
nomprocedure( ) (Si si 820468 pymaster je t'assure que je mets bien comme il faut) puis nomform.nomprocedure( ) j'ai une erreur differente lors de compilation :
error BC30469: Une référence à un membre non partagé requiert une référence d'objet.

Et oui =820468 pymaster j'utilise vb.net.  Je sais que je suis pas tres fort mais y a des limites ;-)
0
pymaster Messages postés 74 Date d'inscription vendredi 14 juillet 2006 Statut Membre Dernière intervention 14 août 2006
21 juil. 2006 à 20:15
Bonjour !!

Voila le problème est la

"Une référence à un membre non partagé requiert une référence d'objet."

Vb.NET fonctionne en objet, un formulaire c'est un objet. Quand tu fais du code par contre tu code une "Classe". Pour devenir un objet il faut la déclarer. Un de tes poste doit fonctionner en mode strict et pas l'autre, c'est pour ça qu'il te fait l'erreur a une place, mais qu'il fonctionne à l'autre

Si tu fais

Private frmMonForm as new MonForm(param)

frmMonForm.show


' plus loins dans le code

frmMonForm.MaSub

Alors il n'y aura pas de trouble, car ton objet sera déclaré !!

Par contre si la fonction pourrait fonctionner indépendament du nombre de second formulaire que tu ouvre et que la valeur reste la même pour tous les formulaires alors tu peux te faire une fonction "Shared", les éléments dans une classe déclaré en Shared n'on pas besoins que l'on créé une instance de la classe pour qu'ils fonctionnent. Alors si tu fait

Class MaClass
private shared MaValeur as monType

...

Public shared maFonction(param) as TypeRetour
' Code
End function

end Class


-------------

dans ton formulaire qui veut utiliser la fonction alors fait

monForm.MaFonction

Et ça va bien fonctionner

Bonne chance !
PY
0
Rejoignez-nous