Bonjour
Comment associer à la fonction CALL une variable.
Merci
Bonjour
Comment associer à la fonction CALL une variable.
Merci
bonjour,
Perso je ne comprends pas ta question... que veux-tu réellement faire ?
Pour moi, CALL n'est pas une fonction, mais une instruction... Me trompe-je ?
Michel
Que Nenni, point de tromperie il n'y a !
Il n'est pas possible d'associer l'INSTRUCTION call à une variable car la procédure appelée doit être statique
Donc, ceci ne fonctionnera pas :
Mais, en revanche, ceci fonctionnera.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub bonjour() Dim proc As String proc = "Micro" Call proc End Sub Sub Micro() MsgBox "hello World" End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub bonjour() Dim proc As String proc = "Micro" Application.Run proc End Sub Sub Micro() MsgBox "hello World" End Sub
(\ _ /) Cordialement G@dz
(='.'=)
(")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.
Bonjour Godzestla
Si tu repasses par là, m'ôterais-tu d'un doute ?
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part Call maprocedure
C'est pareil ou c'est différent ? Et si différent cela est, en quoi l'est-ce ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part maprocedure
Merci
Michel
Re,
selon moi, qui n'utilise quasi jamais, call, c'est pareil sans l'être.
Si la procédure à appeler est une procédure interne à ton code (SUB), je pense que les lignes suivantes sont équivalentes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Sub essai() message Call message Application.Run "message" End Sub Sub message() MsgBox "bonjour" End Sub
Mais d'après l'aide en ligne, call permet également de transférer le contrôle à une DLL
Tu remarqueras que dans l'exemple donné, l'appel est présenté avec et sans call.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ' Call a Microsoft Windows DLL procedure. The Declare statement must be ' Private in a Class Module, but not in a standard Module. Private Declare Sub MessageBeep Lib "User" (ByVal N As Integer) Sub CallMyDll() Call MessageBeep(0) ' Call Windows DLL procedure. MessageBeep 0 ' Call again without Call keyword. End Sub
Alors, tu as raison, cela semble bien équivalent.
A voir selon les désirs de lisibilité.
(\ _ /) Cordialement G@dz
(='.'=)
(")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.
Merci l'ami.
Nous arrivons finalement aux mêmes conclusions : dans la grosse majorité des cas cela semble bien être une question de "lisibilité".
Michel
Perso je n'utilise jamais call non plus !
Autour de nous sur le web, on a pu dire que l'instruction call sert à
(i) la lisibilité
(ii) un transfert de code aisé (en VB.NET par exemple)
(iii) ignorer les valeurs renvoyées par les fonctions mais sans gain temps/mémoire parce qu'une variable est toujours allouée pour renvoyer la valeur d'une fonction, même appelée avec call
(iv) rajouter 7 caractères par appel à ton code (call + espace + deux parenthèses) - sic -
Vous avez donc raison..
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager