Aller au contenu

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 Padlock
Public 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 Function

La fonction d’assistance CallXLSPadlockVBA prend deux paramètres :

  • ID : le nom du Sub ou de la Function compilé que vous souhaitez invoquer.
  • Param1 : un paramètre optionnel que vous souhaitez transmettre au code compilé.

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 Sub

Aprè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 Sub

Ici, 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é.