Invocation du code VBA compilé à l'exécution
Pour exécuter votre code VBA compilé, vous devez l’appeler depuis le code VBA ordinaire de votre classeur à l’aide d’une fonction d’assistance.
Tout d’abord, ouvrez le Visual Basic Editor et collez la fonction d’assistance suivante dans un module de votre classeur :
' This function lets you call VBA macros compiled with XLS PadlockPublic Function CallXLSPadlockVBA(ID As String, Param1 As Variant) As Variant Dim XLSPadlock As Object On Error Resume Next Set XLSPadlock = Application.COMAddIns("GXLSForm.GXLSFormula").Object CallXLSPadlockVBA = XLSPadlock.PLEvalVBA(ID, Param1)End FunctionLa fonction d’assistance CallXLSPadlockVBA prend deux paramètres :
- ID : le nom du
Subou de laFunctioncompilé que vous souhaitez invoquer. - Param1 : un paramètre optionnel que vous souhaitez transmettre au code compilé.
Exemple
Section titled “Exemple”Imaginez que votre module VBA original contienne le code suivant :
Sub Calculate() Range("A4") = "Tom" Range("B4") = 5000 Range("C4") = Range("B4") * 0.5 Range("D4") = Range("C4") + Range("B4")End SubAprès avoir déplacé ce code dans le VBA Compiler, vous remplaceriez le sub original par un appel à la fonction d’assistance :
Sub Calculate() Dim res As Variant res = CallXLSPadlockVBA("Calculate", "")End SubIci, nous fournissons le nom du sub protégé, Calculate, et passons une chaîne vide pour le second paramètre, car il n’est pas utilisé dans ce cas. La variable res contiendra le résultat de l’appel, ce qui est surtout utile si le code invoqué est une Function qui renvoie une valeur.
👉 Voir aussi : découvrez comment transmettre plusieurs paramètres à votre code compilé.