Bonjour,
Je souhaiterais que mon fichier Excel lance une macro automatiquement à son ouverture, je m'explique :
1. J'effectue un suivi des demandes d'achats pour la sous-traitance dans 4 fichiers Excel (un par sous-traitants).
2. Une base Access se nourrie de ces 4 fichiers Excel et regroupe les données dans une seule table à l'aide de plusieurs requêtes de suppression/ajout. La table en question est recréée à chaque ouverture de la base Access par une macro Autoexec.
3. Une requête de sélection trie des informations pour présenter une synthèses des sous-traitants travaillants sur site.
4. Pour simplifier la lecture de ces informations aux autres personnes, j’ai créé un nouveau fichier Excel qui se met à jour en allant chercher le résultat de ma requête Access automatiquement (J’ai pour cela utilisé la fonction Données > Données externes > Créer une requête…).
5. Mon problème aujourd’hui est que la mise à jour effectuée sur la base Access par la macro Autoexec ne se fait pas lors de la mise à jour d’Excel, du coup je suis obligé d’ouvrir Access avant d’ouvrir Excel pour que mes données soient correctement mises à jour.
Je pense que la meilleure solution serait de faire une macro dite "VBA" qui dès l'ouverture du fichier Excel aille ouvrir ma table Access (pour lancer la macro Autoexec), la referme, et lance ensuite la mise à jour des cellules faite au 4.
Le soucis, c'est que je ne connais rien à VBA, et que je me perd dans la masse du FAQ Excel (toutefois très bien réalisé !), j'avoue aussi ne pas trop avoir le temps de lire des dizaines d'articles.
Sur le forum Access une personne a eu la gentillesse de me fournir ce code :
Mais je ne sais pas où le rentrer, ni comment faire en sorte qu'il s'exécute tout seul à l'ouverture du fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim TonAccess As New Access.Application TonAccess.OpenCurrentDatabase "c:\TaBase.mdb" 'ouvre ta base depuis Excel 'TonAccess.DoCmd.RunMacro "Autoexec" ' exécute ta macro TonAccess.Quit acQuitSaveNone ' ferme Access Set TonAccess = Nothing
D'avance je vous remercie pour votre aide.
Nicolas Plan
Partager