Je suis déçu de ma proposition car lancé d'autoit, il n'y a aucune traduction. Sauf erreur de ma part, il faut passer avec du VBA
Le moyen le plus simple est de créer un fichier BAS
Attribute VB_Name
= "Modulenouveau"Sub laMacro1
()Range
("A7").Formula = "=IF(A1>0,""AA"","""")"Range
("A7").Interior.Color = 65535End Sub
Sub laMacro2
()Range
("E10").Formula = "=SUM(E1:E8)"Range
("E10").Interior.Color = 65535End Sub
Sub laMacro3
()Range
("C1").Formula = "=NOW()"Range
("C1").Interior.Color = 65535End Sub
Sub laMacro4
()Range
("E11").Formula = "=POWER(E1,E2)"Range
("E11").Interior.Color = 65535End Sub
Sub laMacro5
()Range
("E12").Formula = "=ROUND(145.236,2)"Range
("E12").Interior.Color = 65535End Sub
Sub supprimerUnModule
() With ThisWorkbook
.VBProject.VBComponents .Remove .Item("Modulenouveau") End
WithEnd Sub
et de l'importer dans le classeur excel puis de lancer les macros par autoit (le module est détruit à la fin)
#include <Excel.au3>Local $oExcel = _Excel_Open()$oWorkbook = _Excel_BookNew($oExcel)$oExcel.Range("A1").Value = 1For $i = 1 To 8$oExcel.Cells($i,5).Value = 1 + $iNext$oWorkbook.VBProject.VBComponents.Import(@DesktopDir & "\module.bas")$oExcel.Run("laMacro1")$oExcel.Run("laMacro2")$oExcel.Run("laMacro3")$oExcel.Run("laMacro4")$oExcel.Run("laMacro5")$oExcel.Run("supprimerUnModule")$oExcel.Columns("C:C").EntireColumn.AutoFit
Toutes les fonctions sont traduites en français dans mon cas
Une chose importante que j'oublie, pour que $oWorkbook.VBProject.VBComponents.Import(@DesktopDir & "\module.bas") fonctionne il faut
Visual basic For Application Extensibility 5.3 activé dans visual basic (outils=>références)
et Options (dans Excel)=> centre de gestion de la confidentialité => parametre du centre de gestion => parametre des macros => Faire confiance au projet Visual Basic