Aller au contenu

Accès aux objets Excel depuis le code VBA compilé

Lorsque vous écrivez du code pour le compilateur VBA, vous devez utiliser explicitement l’objet Application pour accéder au modèle objet d’Excel.

Pour une référence détaillée des propriétés et méthodes disponibles, consultez la documentation du Microsoft Office Dev Center.

Pour référencer une cellule ou une plage de cellules de votre feuille de calcul, vous devez préfixer l’objet Range avec Application.

  • VBA standard : Range("A1:A4").Value = 2
  • VBA compilé : Application.Range("A1:A4").Value = 2

Utiliser les fonctions de feuille de calcul

Section titled “Utiliser les fonctions de feuille de calcul”

Pour utiliser les fonctions de feuille de calcul d’Excel, vous devez utiliser l’objet Application.WorksheetFunction.

Str1 = Application.WorksheetFunction.VLookup(Param1.ComboBox1, Application.Range("A2:C8"), 2, False)

Exemple complet : conversion d’une macro

Section titled “Exemple complet : conversion d’une macro”

Voici une macro VBA standard :

Sub test()
Dim qty As Integer
Dim price As Single, amount As Single
Range("A5").Value = "Item"
ActiveCell.Offset(1, 0).Select
ActiveCell.Value = InputBox("Enter the name of item")
ActiveCell.Offset(0, 1).Select
price = InputBox("Enter the price")
ActiveCell.Value = price
' ... and so on
End Sub

Voici le même code modifié pour le compilateur VBA de XLS Padlock. Notez l’ajout de l’objet Application et des paramètres explicites pour InputBox.

Sub test(Param1)
Dim qty As Integer
Dim price As Single, amount As Single
Application.Range("A5").Value = "Item"
Application.ActiveCell.Offset(1, 0).Select
Application.ActiveCell.Value = Application.InputBox("Enter the name of item", "Name", "")
Application.ActiveCell.Offset(0, 1).Select
price = Application.InputBox("Enter the price", "Price", "")
Application.ActiveCell.Value = price
' ... and so on
End Sub

Votre module VBA original serait ensuite modifié pour appeler la version compilée :

Sub test()
res = CallXLSPadlockVBA("test", "")
End Sub