Bonjour,
Je cherche la technique me permettant de passer une Fonction (ou Sub) en paramètre à une autre Fonction (ou Sub) sous Excel.
Aprés de nombreuses (mais pas trés fructueuses) recherches sur le Net, j'ai trouvé une methode utilisant CallByName.
Le code suivant, placé au niveau du classeur (VBAProject/Microsoft Excel Objets/ThisWorkbook) fonctionne bien :
Option Explicit
Sub fonction_en_parametre()
execute_fonction "ma_fonction", "Texte pour ma_fonction"
End Sub
Sub execute_fonction(fct As String, param As String)
CallByName Me, fct, VbMethod, param
End Sub
Sub ma_fonction(msg As String)
MsgBox "From ma_fonction, msg=" & msg
End Sub |
L'exécution de fonction_en_parametre aboutit bien à l'affichage de la boite de dialogue.
Le problème est que je veux placer mon code dans un Module, et là ça ne fonctionne plus.
Le même code placé dans VBAProject/Modules/Module1 me donne une erreur de compilation au niveau de l'appel de CallByName :
Utilisation incorrecte du mot clé Me |
Je n'ai pas trouvé quel objet passer en paramètre à la place de Me
Quelqu'un a-t-il une suggestion ?
Jean-Pierre.
Message édité par aigles le 19-07-2007 à 23:04:52