Rejouer une exportation enregistrée en VBA
Dans l’article Exporter manuellement une table Access vers Excel, vous avez pu voir comment créer un fichier Excel à partir de données Access, le tout manuellement. Un utilisateur du forum a souhaité savoir comment automatiser cette opération, donc rejouer une exportation enregistrée en VBA.
Pour reprendre sa question : « Comment exécuter une exportation depuis un bouton mis sur mon tableau de bord et donc ne pas passer par le menu ? »
Avant de démarrer
Il y a d’autres façon de créer un fichier Excel, comme l’export CSV, ou comme l’instruction DoCmd.TransferSpreadSheet, qui est plus « brute », mais peut-être aussi plus facile à maintenir. Recherchez les mots « exporter excel » sur ce blog, vous allez trouver plein d’articles ! 🙂
Je suppose aussi que vous avez enregistré au moins une exportation type. Reportez-vous à l’article précédent pour savoir comment le faire ou le vérifier. Dans mon scénario, l’exportation s’appelle « Exportation de la table Documents » ; ce nom est utile pour la suite.
Le code
Je suppose que vous avez un bouton, que ce bouton s’appelle btnExport.
- Faites apparaître les propriétés de ce bouton, onglet Evénement.
- Cliquez sur les points de suspension à droite de l’événement
Sur clic. - Vous retrouvez dans une procédure VBA (entre un
Subet unEnd Sub). Adaptez le code pour obtenir ce qui suit, en reprenant bien sûr le nom de votre propre exportation.
|
1 2 3 |
Private Sub btnExport_Click() DoCmd.RunSavedImportExport "Exportation de la table Documents" End Sub |
C’est tout ! 🙂 Votre bouton devrait maintenant jouer le même rôle que l’icône standard du ruban Access.


Bonjour,
Code très intéressant.
Qu’elle est la façon d’exécuter ce code mais a l’ouverture du fichier, et dans qu’elle emplacement ?
Merci d’avance.
Pour exécuter le code à l’ouverture de la base, il faut d’abord qu’il soit public, et à l’intérieur d’un module standard, pour pouvoir l’appeler d’une macro (voir l’article cet article). Ensuite, il faut écrire la macro en l’appelant
AutoExec(voir l’article ).Ouala !
Bonjour,
Pensez vous qu’il est possible d’utiliser le même principe sur les importations enregistrées?
J’ai un message d’erreur m’indiquant que l’index est introuvable.
Merci beaucoup pour votre aide
A priori oui (mais je n’ai pas testé récemment). Est-ce que le nom de l’importation est strictement identique dans le code VBA ?
Est-ce que le fichier existe et a la forme attendue ?