Macros Access

Comment exécuter une macro Access ou une portion de code VBA Access depuis Excel ?

Recopiez la macro qui suit dans un module standard d’Excel.
Vous pourrez ensuite l’exécuter via le menu Outils / Macro / Macros d’Excel.

Exécuter une macro Access depuis Excel

Dans l’exemple ci-dessus, pensez bien sûr à donner un chemin correct vers votre base de données Access. Remplacez aussi la mention mac Test par le nom réel de la macro à exécuter.

Exécuter une procédure VBA Access depuis Excel

Dans ce second exemple, je suppose que vous avez une procédure (Sub / End Sub) nommée Test, dans un module standard Access, et que cette procédure ne comporte pas de paramètre. Ça pourrait être quelque chose comme :

Dans ce cas, reprenez le listing plus haut en remplaçant la ligne principale :

…par :

Si la procédure Test devait recevoir des paramètres, il suffirait de les ajouter à la suite, séparés par des virgules.
Par exemple :

Important
L’exemple de code ci-dessus fait appel à la bibliothèque Microsoft Access Object Library. Celle-ci doit être cochée dans le menu Outils / Références du VBE Excel. Consultez la page Références pour plus de détails.

Vous aimerez aussi...

8 réponses

  1. Hervé Inisan dit :

    tofatwork > J’ai pris le temps de faire quelques tests complémentaires. La bonne nouvelle : la macro marche toujours correctement avec Access 2010 (en MDB ou ACCDB).

    Par contre, les macros qui demandent de l’interaction (genre MsgBox en VBA ou Message en macro pure) nécessitent qu’Access soit visible. Il suffit de rajouter ceci :

    … quelque part dans la procédure MacroAccess ci-dessus. Par exemple, après cette ligne :

  2. Hervé Inisan dit :

    tofatwork > Je viens de tester sur Access 2010 + Vista. Ça tourne également dans le vide. Après quelques tests rapides, c’est seulement l’instruction DoCmd.RunMacro qui pose problème (le reste fonctionne correctement). Je pencherais soit pour des réglages de sécurité, soit pour un bug (à confirmer).

    Je n’ai pas encore eu le temps de tester toutes les combinaisons concernant la sécurité. Pour ce qui est du bug (si c’est le cas), il y a peut-être une piste à essayer : le Service Pack 1 de Office 2010 vient tout juste de sortir…

  3. tofatwork dit :

    bonjour,

    j’utilise ce scripte depuis plusieurs années sans souci … je viens de passer en Office2010 sous W7 et la macro plante. Doit-on adapter le code pour ouvrir une base .accdb ?

  4. Hervé Inisan dit :

    Nek > Quels sont les réglages à l’ouverture de la base ? Notamment : y a-t-il une macro AutoExec ou des options de démarrage (Outils / Démarrage) ?

  5. Nek dit :

    Bonjour ! Merci pour cette réponse rapide 🙂

    J’ai pourtant office 2003, sans votre proposition j’ai ma base qui s’ouvre normalement en affichant le menu de base, par contre si je suis votre proposition il ne se passe rien de différent. Par contre j’ai essayer apres le « acApp.OpenCurrentDatabase » de mettre : « acApp.Visible = False », access se fige et n’arrive pas au menu de la base. ce n’est pas l’effet recherché mais déja si l’utilisateur ne voit pas un autre menu cela portera moins a confusion …
    je vous tiens au courant si je trouve la méthode miracle 🙂
    cordialement

  6. Hervé Inisan dit :

    Nek > Ca doit dépendre des packs (je viens de refaire un test avec Office 2003, et on ne voit qu’un bouton Access sur la barre des tâches). Et si tu rajoutes un :

    acApp.Visible = False

    après cette ligne :

    Set acApp = New Access.Application ?

  7. Nek dit :

    Bonjour ! cette méthode fonctionne parfaitement par contre avec un OpenCurrentDatabase on voit access se lancer cela peut troubler l’utilisateur … y’a t il un moyen de masquer l’apparition d’access ? j’avais pensé a un : Application.ScreenUpdating = False mais sa ne marche qu’avec les feuilles excels …
    Cordialement

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *