Exécute une macro EXCEL.
La macro peut être présente dans le classeur ouvert (.xls ou .xlsm par exemple), ou bien dans un complément Excel (.xla ou .xlam), que l’on pourra charger avec la commande XLADDINS.
Syntaxe
CHGVAR |
VAR(&CMD) VALUE('XLEXEMACRO') |
CHGVAR |
VAR(&PARM1) VALUE('Nom de la macro') |
CHGVAR |
VAR(&PARM2) VALUE('[Paramètres macro]') |
CALL |
PGM(LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 + &PARM2 &RESULT) |
Paramètres
Paramètres |
|
Parm1 |
Nom de la macro.
|
Parm2 |
Paramètres
passés à la macro.
|
Exemple
CHGVAR |
VAR(&CMD) VALUE('XLEXEMACRO') |
CHGVAR |
VAR(&PARM1) VALUE('Macro1') |
CHGVAR |
VAR(&PARM2) VALUE('"12000";"FRANCE" ') |
CALL |
PGM(LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 + &PARM2 &RESULT) |
ou
CHGVAR |
VAR(&CMD) VALUE('XLEXEMACRO') |
CHGVAR |
VAR(&PARM2) VALUE('Macro') |
CHGVAR |
VAR(&PARM1) VALUE(' ') |
CALL |
PGM(LNCCMD) PARM(&HANDLE &CMD &OPT &PARM1 + &PARM2 &RESULT)) |
Dans cet exemple, le classeur actif contient les macros.
Autre exemple
Supposons que nous ayons la macro suivante, avec deux paramètres :
Sub ProcMsgBox(sParam1 As String, sParam2 As String)
MsgBox sParam1 & " - " & sParam2
End Sub
Si la macro est dans le classeur actif, alors on utilisera ce code pour exécuter la macro :
LNCCMD CMD(EXCELOPEN)
LNCCMD CMD(XLOPENFILE) PARM1('C:\A\temp.xlsm')
LNCCMD CMD(XLEXEMACRO) PARM1('ProcMsgBox') + PARM2('"Aura";"Equipements"')
Si la macro est dans un complément XLAM (ou un complément XLA), alors on utilisera le code suivant pour cherger le complément et ensuite exécuter la macro :
LNCCMD CMD(EXCELOPEN)
LNCCMD CMD(XLOPENFILE) PARM1('C:\A\temp.xlsx')
LNCCMD CMD(XLADDINS) PARM1('C:\A\ModelMacro.xlam')
LNCCMD CMD(XLEXEMACRO) PARM1('ProcMsgBox') + PARM2('"Aura";"Equipements"')
Voir aussi
• XLMETHOD
• XLADDINS