IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Créer une macro automatique à l'ouverture d'Excel [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 12
    Points
    12
    Par défaut Créer une macro automatique à l'ouverture d'Excel
    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 :

    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
    Mais je ne sais pas où le rentrer, ni comment faire en sorte qu'il s'exécute tout seul à l'ouverture du fichier.


    D'avance je vous remercie pour votre aide.

    Nicolas Plan

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir,

    Il suffit d'intégrer ta macro dans ThisWorkbook (dans l'éditeur VBA) dans l'évenement open de workbook

    bonne nuit
    (je n'ai pas vérifié ta macro car je ne connais pas access)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Vu que tu veux lancer Access après la saisie, il ne faut pas le faire sur l'ouverture mais la fermeture (BeforeClose).

    Cela ne sert à rien de lancer ta base Access à l'ouverture, car tu n'as pas encore saisi.

    Philippe

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Philippe, la mise à jour de mes cellules se fait par rapport à la requête Access, donc je pense qu'il faut que la base soit mise à jour avant le "copier coller".

    Je crois que j'ai trouvé le bon endroit où mettre le code VBA, mais une erreur apparaît à l'ouverture du fichier :


  5. #5
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 369
    Points : 19 771
    Points
    19 771
    Billets dans le blog
    65
    Par défaut
    Bonjour Philippe,

    La méthode de Philippe (sur fermeture) va bien pour les 4 fichiers Excel utilisé pour le suivi des commandes.

    Pour le nouveau ficher Excel qui se met à jour avec les données Access, je pense qu'il faut utiliser sur ouverture:

    Nicolas Plan:
    Il te manque une reference à Access dans tes librairies:
    Outils->References->et tu coche "Microsoft Access Object Library"

    A+

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    Mes 4 fichier excel ne contiennent pas de macros, c'est moi qui les mets à jour manuellement lors de rendez-vous mensuels.

    J'ai coché la librairie Access, et maintenant tout fonctionne parfaitement !

    Merci encore pour votre aide, vous êtes géniaux !


    Bien cordialement,
    Nicolas Plan

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment lancer une macro automatique lors d'ouverture de fichier EXcel
    Par yassinefeki dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 16/05/2010, 23h48
  2. Créer une macro Excel en VBScript
    Par ghostvb dans le forum VBScript
    Réponses: 9
    Dernier message: 29/07/2009, 11h17
  3. Réponses: 1
    Dernier message: 08/10/2008, 15h30
  4. Réponses: 7
    Dernier message: 14/05/2008, 11h41
  5. Réponses: 2
    Dernier message: 22/07/2002, 12h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo