[VBA] Fonction qui retourne une valeur [Fermé]

Signaler
-
 AnnaLysa -
Bonjour,

J'aimerai réaliser un programme utilisant une fonction, le prog est fait mais c'est la fonction qui me pose problème:

Je dois entrer une chaîne de caractères en argument, ça je sais faire:

Function ma_function(argument as string)
....
EndFunction


Ce que je ne sais pas faire par contre c'est que la fonction renvoie en réponse un entier... Comment puis-je faire SVP?

Merci d'avance

7 réponses

Bonjour,
Il suffit de nomer la variable de retour du meme nom que la fonction :


Function ma_function(argument as string) as (type retourné)

ma_function = ....

EndFunction


et tu l'appelles de façon classique
35
Merci

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez Comment Ça Marche

CCM 63550 internautes nous ont dit merci ce mois-ci

Merci ! Tu me sauves la vie là :)
Bonjour,

ou encore :

Sub Test()

Dim Argum As String, Resul As Integer, Fina As Integer

Argum = "20"
Resul = 1
Fina = 1
Call Ma_Fonction(Argum, Resul, Fina)
MsgBox Argum & vbLf & Resul & vbLf & Fina

End Sub
'

Function Ma_Fonction(ByVal Argument As String, ByRef Resultat As Integer, ByRef Final As Integer)

Resultat = Val(Argument)
Final = Resultat - 1
Argument = "Nil"

End Function
'

Michel
Messages postés
123
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
23 février 2011
38
Bonjour,

Quelques petites précisions concernant les fonctions et procédures, ainsi que les arguments "byval" et "byref"
N'aimant pas refaire ce qui a déjà été si bien fait, je vous fournis juste les liens :

vbsfunction
https://codes-sources.commentcamarche.net/

Feignassement,

Teteve :)

Bonjour

Peut-on renvoyer une structure de donnée ex:

si je fais

Type rep
         EstRep As Boolean
         chemin As String
End Type


puis-je faire:

Function ma_fonction(argument As String) As rep


Merci d'avance

Merci beaucoup
Function ma_function(argument as string) as integer
....
EndFunction
Messages postés
123
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
23 février 2011
38
Bonjour WSL1912,

Euh... Bonne question... Je t'avoue que dans l'absolu je n'en sais rien. La meilleure façon de le savoir est d'essayer :)
Si tu n'y arrives pas, expose toutes les données de ton problème, il y a forcément un moyen de contourner les problèmes ;)

Teteve