OVH Cloud OVH Cloud

Aide sur les Function

3 réponses
Avatar
Nesta
Bonjour à tous,

J'ai des soucis avec une fonction. J'en ai créé une dans un module, qui est
appelée à partir d'une procédure d'une autre module, mais impossible de
récupérer la valeur de la variable (qui pourtant s'affiche bien dans la
fonction même).

Voici le code pour l'appel de la fonction :
------------------------------------------
Sub LaProcedure()

' Déclarations
Dim LHeure As String

LHeure = "TEST"
MsgBox LHeure

LHeure = FormatageHeure.FormatageHeure()

MsgBox LHeure

End Sub

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

Voici le code de la fonction :
-----------------------------------------
Function FormatageDate() As String

' Cette fonction récupère la date courante du système
' et l'insère dans une variable String en la formatant : "jjmmaa"


' Declarations
Dim HeureSysteme As String


HeureSysteme = Time
HeureSysteme = Left(HeureSysteme, 2) & Mid(HeureSysteme, 4, 2) &
Right(HeureSysteme, 2)


End Function
----------------------------------------
----------------------------------------

Si vous la voyez, pouvez- vous m'indiquer où j'ai fait une erreur ? Merci
d'avance.


Nesta

3 réponses

Avatar
Christian Hugoud
Tu dois ajouter à la fin :

FormatageDate = HeureSysteme

Christian

"Nesta" a écrit dans le message de news:

Bonjour à tous,

J'ai des soucis avec une fonction. J'en ai créé une dans un module, qui
est appelée à partir d'une procédure d'une autre module, mais impossible
de récupérer la valeur de la variable (qui pourtant s'affiche bien dans la
fonction même).

Voici le code pour l'appel de la fonction :
------------------------------------------
Sub LaProcedure()

' Déclarations
Dim LHeure As String

LHeure = "TEST"
MsgBox LHeure

LHeure = FormatageHeure.FormatageHeure()

MsgBox LHeure

End Sub

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

Voici le code de la fonction :
-----------------------------------------
Function FormatageDate() As String

' Cette fonction récupère la date courante du système
' et l'insère dans une variable String en la formatant : "jjmmaa"


' Declarations
Dim HeureSysteme As String


HeureSysteme = Time
HeureSysteme = Left(HeureSysteme, 2) & Mid(HeureSysteme, 4, 2) &
Right(HeureSysteme, 2)


End Function
----------------------------------------
----------------------------------------

Si vous la voyez, pouvez- vous m'indiquer où j'ai fait une erreur ? Merci
d'avance.


Nesta



Avatar
Emmanuel DURAND
Bonjour,
Lorsque tu écris
LHeure = FormatageHeure.FormatageHeure()
et que tu nous donnes la fonction
Function FormatageDate() As String

c'est une erreur dans le mail?

L'utilisation du même nom pour le module et la fonction ne me semble pas
très judicieux.
FormatageHeure.FormatageHeure()

Mais surtout tu ne renvois pas de valeur dans ta fonction, il manque :
FormatageDate = HeureSysteme

Bonne journée.

"Nesta" a écrit dans le message de
news:
Bonjour à tous,

J'ai des soucis avec une fonction. J'en ai créé une dans un module, qui


est
appelée à partir d'une procédure d'une autre module, mais impossible de
récupérer la valeur de la variable (qui pourtant s'affiche bien dans la
fonction même).

Voici le code pour l'appel de la fonction :
------------------------------------------
Sub LaProcedure()

' Déclarations
Dim LHeure As String

LHeure = "TEST"
MsgBox LHeure

LHeure = FormatageHeure.FormatageHeure()

MsgBox LHeure

End Sub

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

Voici le code de la fonction :
-----------------------------------------
Function FormatageDate() As String

' Cette fonction récupère la date courante du système
' et l'insère dans une variable String en la formatant : "jjmmaa"


' Declarations
Dim HeureSysteme As String


HeureSysteme = Time
HeureSysteme = Left(HeureSysteme, 2) & Mid(HeureSysteme, 4, 2) &
Right(HeureSysteme, 2)


End Function
----------------------------------------
----------------------------------------

Si vous la voyez, pouvez- vous m'indiquer où j'ai fait une erreur ? Merci
d'avance.


Nesta




Avatar
Nesta
Bonjour Christian et Emmanuel et merci pour les réponses.
Je n'avais pas capté qu'il fallait mettre une variable portant le nom de la
fonction pour pouvoir faire passer le paramètre. Je viens de tester, et
c'est nickel.

Message à Emmanuel :


Bonjour,
Lorsque tu écris
LHeure = FormatageHeure.FormatageHeure()
et que tu nous donnes la fonction
Function FormatageDate() As String

c'est une erreur dans le mail?




Oui, je me suis trompé ! en fait, au départ, je pensais avoir besoin de
récupérer la date. Et finalement, c'était l'heure. Donc j'ai modifié dans le
mail directement. Mais pour le code même, c'est ok.
--------------------------------------------------------------------------------

L'utilisation du même nom pour le module et la fonction ne me semble pas
très judicieux.
FormatageHeure.FormatageHeure()




J'ai procédé comme ça pour la dénomination des modules et fontcions pour
être sûr d'éviter les erreurs, et pour que ça soit intuitif. Sur le module
en question, il n'y a qu'une fonction.
Je pensais éventuellement organiser mon code un peu comme ça, càd créer un
module pour chaque fction, et les deux portent le même nom.
je me disais qu'en séparant bien la procédure "principale", et les fonctions
ou procédures sous-jacentes qui sont appelées au fil du code permettrait
d'avoir un code clair. Peut-être me suis-je trompé ?
Y at-il une meilleure façon de procéder, afin que je puisse développer avec
les bonnes techniques dès le départ (je ne l'ai pas mentionné, mais je suis
archi débutant !).
Merci pour tes infos.


Cordialement,
Nesta







"Emmanuel DURAND @wanadoo.fr>" <edurand<NOSPAM> a écrit dans le message de
news:
Bonjour,
Lorsque tu écris
LHeure = FormatageHeure.FormatageHeure()
et que tu nous donnes la fonction
Function FormatageDate() As String

c'est une erreur dans le mail?

L'utilisation du même nom pour le module et la fonction ne me semble pas
très judicieux.
FormatageHeure.FormatageHeure()

Mais surtout tu ne renvois pas de valeur dans ta fonction, il manque :
FormatageDate = HeureSysteme

Bonne journée.

"Nesta" a écrit dans le message de
news:
Bonjour à tous,

J'ai des soucis avec une fonction. J'en ai créé une dans un module, qui


est
appelée à partir d'une procédure d'une autre module, mais impossible de
récupérer la valeur de la variable (qui pourtant s'affiche bien dans la
fonction même).

Voici le code pour l'appel de la fonction :
------------------------------------------
Sub LaProcedure()

' Déclarations
Dim LHeure As String

LHeure = "TEST"
MsgBox LHeure

LHeure = FormatageHeure.FormatageHeure()

MsgBox LHeure

End Sub

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

Voici le code de la fonction :
-----------------------------------------
Function FormatageDate() As String

' Cette fonction récupère la date courante du système
' et l'insère dans une variable String en la formatant : "jjmmaa"


' Declarations
Dim HeureSysteme As String


HeureSysteme = Time
HeureSysteme = Left(HeureSysteme, 2) & Mid(HeureSysteme, 4, 2) &
Right(HeureSysteme, 2)


End Function
----------------------------------------
----------------------------------------

Si vous la voyez, pouvez- vous m'indiquer où j'ai fait une erreur ? Merci
d'avance.


Nesta