Appel de fonction stocké dans des modules

Résolu
JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013 - 3 mars 2011 à 11:59
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 3 mars 2011 à 19:26
Bonjour,

Je suis en train de créer un programme assé long et qui fais appel plusieurs fois aux mêmes fonction, avec quelques variables qui diffèrent selon les actions que je leur demande .

J'ai donc choisis de programmer mes fonctions dans des modules afin de les appeler que l'osque j'en aurais besoin.

Le problème est que je n'arrive pas à les appeler de mon form pour les exécuter...

Connaissez vous la démarche à suivre? les codes à entrer pour choisir de mon Form d'exécuter ma fonction qui est programmé dans un de mes modules?

11 réponses

Sehnsucht Messages postés 107 Date d'inscription samedi 25 novembre 2000 Statut Membre Dernière intervention 4 mai 2013
3 mars 2011 à 14:28
Bonjour,

Le message d'erreur doit dire "Argument not optional" pas optimal

Tout ça pour te faire comprendre que tu as défini une méthode chargement_csv qui prend 1 paramètre et donc que l'appel à cette méthode doit spécifié ce paramètre.

Maintenant dans le corps de ta fonction tu n'utilises pas ce paramètre, donc fait une fonction sans paramètre (ou utilise-le ^^):
'exemple sans paramètre
Public Function chargement_csv() As Boolean
'...


De plus ta fonction ne renvoie aucune valeur, donc soit tu renvoies une valeur (du type défini, ici Boolean) soit fait une Sub plutôt qu'une fonction, exemple:
'sans paramètre
Public Sub chargement_csv()
'...

'avec paramètre
Public Sub chargement-csv(ByVal parametre As String)
'...


Cordialement !
3
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
3 mars 2011 à 12:17
Bonjour,

Dans tes modules il faut déclarer tes foncions en Public.

Pour les appeler depuis n'importe quelle Form :
Call maFonction(paramètres à passer)

Cheyenne
0
JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013
3 mars 2011 à 12:23
Ca ne fonctionne pas :s

Peu tu me donner le code de déclaration de la fonction pour ta méthode pour l'exemple d'une fonction qui n'a pas besoin de variable (pour faire simple) afin que je vois ci c'est à cause de ca...
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
3 mars 2011 à 12:51
Public Function maFonction()
   '   code
End Function



@Cheyenne
0

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

Posez votre question
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
3 mars 2011 à 12:58
Re,

Rectification :

Public Function maFonction() As ...
' code
End Function

Les 3 points représentent la nature de ta fonction, String, Integer, Boolean, etc ...

Cheyenne
0
JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013
3 mars 2011 à 14:18
En suivant tes conseils je me retrouve avec le message d'erreur quand je l'exécute : "Expected variable or procédure, not module"

Dans mon module :
Public Function chargement_csv(ByVal parametre As String) As Boolean
'affichage de la fenêtre de recherche du fichier de relevé
  CommonDialog1.CancelError = True
  CommonDialog1.InitDir = "C:"
  CommonDialog1.Flags = cdlOFNHideReadOnly
  CommonDialog1.Filter = "Fichiers csv " & _
  "(*.csv)|*.csv"
  CommonDialog1.ShowOpen
'stocker l'emplacement du fichier dans "fiche_name"
fich_name = CommonDialog1.FileName
End Function


Dans mon forme:
Private Sub cmd_charger_Click()

Call chargement_csv

End Sub
0
JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013
3 mars 2011 à 14:22
Désolé j'avais mis le même nom pour mon module que ma fonction, une fois les nom changés, le message d'erreur devien :
"Argument not optimal"
0
JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013
3 mars 2011 à 14:36
ok merci,
et si je comprend bien, parametre est une variable c'est bien ca? je peu donc programmer :
Public Sub chargement-csv(ByVal var_1 As String,ByVal var_2 as single)
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
3 mars 2011 à 15:07
Bonjour,

> Sehnsucht. Oui, tout à fait. A quoi bon créer une fonction si celle-ci ne renvoie pas de valeur.

> JSilvere. J'ai l'impression que tu confonds les routines avec les fonctions.

Une fonction sert par nature à retourner une valeur.

Par exemple, voici une fonction qui te retourne un nopmbre pseudo-aléatoire :
Private Function fnRND(vMIN As Integer, vMAX As Integer) As Integer
   fnRND = Int(Rnd * (vMAX - vMIN + 1)) + vMIN
End Function


Emploi : (entre autres)
a = fnRND(4,64)
ou
if fnRND(50,100) > 75 then ...

Cheyenne
0
JSilvere Messages postés 161 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 11 février 2013
3 mars 2011 à 15:22
ok donc moi je n'ai besoin que de sub ;)
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
3 mars 2011 à 19:26
Si une des réponses précédentes te convient, penses à la valider. Merci.

Bonne soirée,

Cheyenne
0
Rejoignez-nous