lolo38550
Messages postés30Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention12 janvier 2010
-
9 août 2006 à 10:52
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
18 août 2006 à 22:48
Bonjour à tous!
J'ai un problème tout simple mais je ne trouve pas de solution. J'utilise une macro excel qui fait un certain traitement sur une variable. Ensuite, cette macro fait appel à une seconde macro en lui passant en paramètre cette variable. Ce qu'il me manque c'est la synthaxe exacte du passage de paramètre.
Exemple
Sub macro1
....
....
macro2(variable1)
...
...
end Sub
Sub macro2(variable1)
....
....
....
End Sub
J'ai déjà penser à déclarer ma variable public pour que toutes les macros y aient accès mais, ce n'est pas très propre ...
Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
1/
Le ByVal, c'est pour redéfinir la variable "variable1" pour pas changer sa valeur au reteur de la fonction.
Example si tu fait :
Public
Sub
macro1()
Dim
variable1
As
String
variable1 =
"toto"
Call
macro2(variable1)
MsgBox(variable1)
End
Sub
Public
Sub
macro2(
ByVal
variable1
As
String
)
variable1 = variable1 &
" et retoto"
End
Sub
Le résultat est "toto".
Avec byref :
Public
Sub
macro1()
Dim
variable1
As
String
variable1 =
"toto"
Call
macro2(variable1)
MsgBox(variable1)
End
Sub
Public
Sub
macro2(
ByRef
variable1
As
String
)
variable1 = variable1 &
" et retoto"
End
Sub
Le résultat est "toto et retoto"
2/
Oui, tu peux renommer,
Tu peux changer son nom et son type comme t'en as envis.
Public
Sub
macro2(
ByVal
petitevariable
As
Integer
)
[...]
EndSub
Kenji
Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
lolo38550
Messages postés30Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention12 janvier 2010 9 août 2006 à 11:09
Salut!!
Merci beaucoup, ça marche! Le problème était que je ne connaissait pas la synthaxe exacte pour le passage de paramètre et j'avais des messages d'erreurs... Deux petites précisions:
1/ à quoi sert "ByVal" ?
2/ Peut-on renommer différement notre "variable1" dans macro2 ?
lolo38550
Messages postés30Date d'inscriptionmardi 25 juillet 2006StatutMembreDernière intervention12 janvier 2010 9 août 2006 à 11:09
Salut!!
Merci beaucoup, ça marche! Le problème était que je ne connaissait pas la synthaxe exacte pour le passage de paramètre et j'avais des messages d'erreurs... Deux petites précisions:
1/ à quoi sert "ByVal" ?
2/ Peut-on renommer différement notre "variable1" dans macro2 ?
Merci encore!
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 18 août 2006 à 22:48
Petite rectification,
tu ne peux pas changer le type. Si tu envoies une String en paramètre, la fonction doit avoir une string comme paramètre, sinon il y aura erreur 13 "Type mismatch" ou "Incompatibilité de type"
Par contre, pour une Function, la valeur de retour est définie
explicitement par la Function. S'il n'y a pas de valeur de retour,
alors ce sera une valeur Variant. Tu peux donc envoyer une String à la
Function et celle-ci peut retourner un résultat quelconque du même type
ou non que le paramètre.