|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() |
Bonjour,
Au vu de ce que je cherche à faire (un tableau dan lequel je dois envoyé des données de textbox en paramètres), je risque de devoirs faire une fonction. D'après ce que j'ai lu, les fonctions sont écrites dans des modules et ensuite toujours dans le module appelés dans les instructions d'un sub qqchose(). Est-il possible d'appelés une fonction dans le code d'un usf et de passer des paramètres se situant dans des blocs de codes différents (4 textbox différentes)? Bien entendu si oui, comment? |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Oui, il suffit de donner une portée 'Public' à ta fonction.
Quant aux arguments, aucun problème pour les passer tant qu'ils existent dans l'espace depuis lequel tu appelles ta fonction je pense. Donc si tu appelles ta fonction située dans un module depuis un userform et que tu veux lui passer tes textbox en arguments, ça devrait marcher si tu appelles la fonction depuis le userform. |
|
|
00
|
|
|
#3 | ||
|
Membre du Club
![]() |
En fait j'étais plutôt partis sur le passage de mes texbox dans une variable string
puis appeler le(s) string. En fait mes string on été déclaré en public parce que je les utilisais ailleurs mais dans ma fonction j'ai mis un paramètre que j'utilise même pas (intérêt = 0)donc c'est sur ça va foirer. Par contre, je vois pas comment appeler ma fonction (vu dans un tuto du forum ou la fonction est appelé dans un sub) mais surtout ou la mettre. donc voilà une partie du code dans lequel je pense appelé ma (mes fonction(s) Code :
|
||
|
|
00
|
|
|
#4 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Avec une portée 'Public' tu peux la mettre dans le module que tu veux, elle sera appelable de n'importe où.
|
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() |
La question c'est comment l'appeler, une fois que tu sais comment l'appeler ta fonction tu peux la mettre "où tu veux".
|
|
|
00
|
|
|
#6 | ||||
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Euh oui...disons pour l'exemple que j'écrive ma fonction dans un module perso. Dans ce module j'aurais donc seulement ma fonction:
Code :
Code :
...mais je ne suis pas sûr qu'on se comprenne bien. |
||||
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() |
Si si c'était bien ce que je voulais savoir
|
|
|
00
|
|
|
#8 | |||||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 895 ![]() |
Bonjour,
En complément de Sclarckone La fonction attend 4 paramètres et retourne un string Code :
Code :
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|||||
|
|
10
|
|
|
#9 |
|
Membre actif
![]() Inscription : novembre 2008 Messages : 188 ![]() |
Et je me permets d'ajouter, puisque dans une autre discussion tu expliquais que tu as un nombre variable de textbox, que tu peux déclarer certains arguments comme optionnels (avec le mot clé 'Optional').
Si mes souvenirs sont bons tu pouvais avoir besoin d'en utiliser 2,3 ou 4 donc tu peux déclarer ta fonction comme suit: Code :
Public Function maFonction (str1 As string, str2 As string, Optional str3 As string, Optional str4 As string) As string |
|
|
00
|
|
|
#10 | ||
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 773 ![]() |
Bonjour,
Et si on ne connaît pas à l'avance le nombre d'arguments à passer à la fonction, il suffit alors de lui passer un tableau sur lequel elle travaillera en cherchant avec Ubound(Tbl) la borne supérieure : Code :
|
||
|
|
20
|
|
|
#11 |
|
Membre du Club
![]() |
Merci pour tout ça que je vais essayer.
Dans mon cas une msgbox ne sert pas. |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 773 ![]() |
Bonjour,
Le MsgBox est un exemple pour voir le retour de fonction ! A toi d'adapter la récup. Hervé. |
|
|
10
|
|
|
#13 |
|
Membre du Club
![]() |
une fonction est-elle obligé de renvoyé un résulat qu'il apparaisse dans une variable une msgbox ou autre?
En fait je vaux faire une remise à zéro de mes textbox et des chaînes qui ont été remplit durant l'exécution de ma macro. A moins qu'une fonction existe déjà. |
|
|
00
|
|
|
#14 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 895 ![]() |
On utilise une fonction quand attend un résultat ou une information en retour de son exécution.
Si le but est uniquement de faire des actions sans attente de retour d'information, une procédure est plus adaptée (Sub)
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|
|
|
10
|
|
|
#15 |
|
Membre du Club
![]() |
Je suppose que l'appel et la définition du sub sont semblables?
Finalement j'ai fait le bourrin. Merci pour le coup de main |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com