Carte du site
 Remerciements
 Netiquette
 Bugs
 Tables
 Requêtes
 Formulaires
 États (rapports)
 Modules
 APIs
 Chaînes
 Date/Time
 Général
 Ressources
 Téléchargeables

 Termes d'usage

Modules: Exécuter une macro d'Excel par automation

Author(s)
Dev Ashish

Exécuter une macro d'Excel par automation.

    Tout d'abord, le code.

'************* Code Start ****************
'
Sub sRunCARMa()
Dim objXL As Object, x
    On Error Resume Next
    Set objXL = CreateObject("Excel.Application")
    With objXL.Application
        .Visible = True
        'Ouvrir le livret
        .Workbooks.Open "D:\CARM\SYS\CARMaV5\CARMaV5a.XLS"
        'Inclure CARMA dans le menu, exécuter  AutoOpen
        .ActiveWorkbook.RunAutoMacros xlAutoOpen
        x = .Run("AccountsViewEngine", 0)
    End With
    Set objXL = Nothing
End Sub
'************* Code End ****************

        Comme vous le constatez, j'utilise CreateObject pour démarrer une instance d'Excel. Vous pouvez cependant utiliser  fIsAppRunning  pour alors choisir d'utiliser GetObject, si c'est plus opportun.

        CreateObject démarre par défaut une nouvelle instance de l'application en mode caché. Dans notre cas, nous désirons la rendre visible.

        Après avoir ouvert le livret qui nous intéresse, on utilisa  RunAutoMacros pour démarrer la macro  AutoOpen.

        Noter que si vous désirez que Access reconnaisse les constantes d'Excel, tel que xlAutoOpen, il faut préalablement demander une référence à  Excel Object Library (Menu, Tools , References...).

        On utilise la méthode Application.Run pour exécuter n'importe quelle macro. La syntaxe est simplement:

                Run(Macro, Arg1, Arg2, ...)

         et  AccountsViewEngine s'attend à recevoir un argument booléen, ici, 0 pour Faux.

© 1998-2001, Dev Ashish, All rights reserved. Optimized for Microsoft Internet Explorer