<p>Créez un script VBScript (.vbs) :</p>
<pre data-code-wrap="vbscript"><code class="lang-vbscript">Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.Workbooks.Open "C:\chemin\fichier.xlsm"
objExcel.Run "NomDeLaMacro"
objExcel.Quit
Set objExcel = Nothing
</code></pre>
<p>Appelé depuis un batch :</p>
<pre data-code-wrap="batch"><code class="lang-batch">cscript //nologo C:\chemin\script.vbs
</code></pre>
<p>Ou avec PowerShell :</p>
<pre data-code-wrap="powershell"><code class="lang-powershell">$excel = New-Object -ComObject Excel.Application
$wb = $excel.Workbooks.Open("C:\chemin\fichier.xlsm")
$excel.Run("NomDeLaMacro")
$wb.Close($false)
$excel.Quit()
</code></pre>