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 :

Lancer une macro à l'ouverture d'un classeur Excel [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de CoyotteDundee
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 47
    Points
    47
    Par défaut Lancer une macro à l'ouverture d'un classeur Excel
    Bonjour à toutes et tous,
    Petit problème à soumettre à votre sagacité :

    Sous Excel 2013, je dois lancer une macro à l'ouverture d'un document Excel.
    "Facile" me direz-vous, "il suffit de créer la macro Workbook_open()"
    Certes... Mais pour que cela fonctionne, il faut que la-dite macro se trouve dans le document à ouvrir
    Or, il me faut lancer cette macro sur des documents anciens...qui ne la contiennent pas.

    J'ai tenté de placer ma macro dans un fichier personnal.xlsm placé dans le sous-répertoire XLStart
    Cela fonctionne ... uniquement au lancement d'Excel (et donc à l'ouverture de personnal.xlsm)

    Ma question est donc la suivante :
    Est-il possible de lancer une macro "externe" à un fichier .xls lors de l'ouverture de celui-ci ?

    Merci d'avance pour vos conseils et suggestions,

    Coyotte

  2. #2
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut

    Bonjour,

    si c'est une procédure d'un autre classeur se chargeant d'ouvrir le classeur puis de le traiter …

  3. #3
    Membre du Club Avatar de CoyotteDundee
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    Bonjour Marc,
    Merci pour l'intérêt porté au problème. :-)

    Idéalement, il faudrait éviter cette solution.

    Pour être un peu plus précis sur la problématique rencontée :
    En fait, nous avons un fichier XLA qui est utilisé dans certains fichiers Excel ("Certains" car l'utilisation se fait à la discrétion des utilisateurs)
    Ce fichier XLA se trouve dans ...\office11\bibliothèque\

    Or, nous passons à Office 2013. Nous allons donc déplacer le fichier XLA vers un endroit "neutre" (indépendant de la version d'office) afin de ne plus avoir de problème de ce type dans le futur.
    Mais il subsiste pléthore de fichiers faisant encore référence à la version 2003. Il appert qu'une solution serait de supprimer, dans la feuille de calcul, le chemin vers le fichier XLA pour ne garder que l'appel de la fonction, auquel cas, Excel se "débrouille" pour faire le lien avec le XLA disponible.
    Il me faut donc lancer une macro lorsqu'un fichier Excel est chargé...

    J'espère que ceci permet de mieux comprendre le problème rencontré.

    Coyotte

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2014
    Messages : 31
    Points : 51
    Points
    51
    Par défaut
    Salut,


    Es-tu obligé de passer par une macro ?

    Car sinon, tu peux te créer un petit complément Excel en .Net (utilise les librairies NetOffice, elles sont très simple d'utilisation) qui se charge au démarrage d'Excel et te lance les actions que tu veux faire.

  5. #5
    Membre du Club Avatar de CoyotteDundee
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    Bonjour Hazraael,

    Non, je n'ai aucune obligation... si ce n'est que de résoudre le probème ;-)
    Je vais jeter un oeil sur les librairies netoffice.

    Merci,

    Coyotte

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Il suffit d'utiliser dans ton fichier de macros qui s'ouvre automatiquement (celui dans XLSTART), l'évènement WorkbookOpen (sans "_") de l'objet Application
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub  App_WorkbookOpen(ByVal Wb As Workbook)
    Le paramètre est obligatoire.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juin 2014
    Messages : 31
    Points : 51
    Points
    51
    Par défaut
    D'après ce que j'ai compris, ce qu'il veut faire (corrige-moi si je me trompe CoyotteDundee) c'est lancer la macros au démarrage d'excel, pas forcément au lancement d'un fichier bien précis.

    Or la méthode WorkbookOpen, est exécutée uniquement à l'ouverture d'un classeur, pas à l'ouverture d'excel.


    @CoyotteDundee : n'hésite pas si t'as besoin d'aide pour utiliser cette librairie, je m'en suis servi en début d'année.

  8. #8
    Membre du Club Avatar de CoyotteDundee
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    @Menhir, @Hazraael,

    Merci pour vos idées. La solution de Mehnir semble fonctionne comme espéré. J'ai testé par l'affichage d'une MsgBox et en effet, lors de l'ouverture d'un fichier XLS, le message apparaît.
    Je contrôle encore un peu le tout avant de confirmer que tout est ok.

    Coyotte

  9. #9
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par hazraael Voir le message
    D'après ce que j'ai compris, ce qu'il veut faire (corrige-moi si je me trompe CoyotteDundee) c'est lancer la macros au démarrage d'excel, pas forcément au lancement d'un fichier bien précis.

    Or la méthode WorkbookOpen, est exécutée uniquement à l'ouverture d'un classeur, pas à l'ouverture d'excel.
    Il a écrit "Je dois lancer une macro à l'ouverture d'un document Excel".
    C'est exactement ce que fait l'évènement que j'ai proposé : il se lance à chaque ouverture de n'importe quel fichier.
    Cet évènement n'a pas besoin d'être associé à un fichier précis (mais il est possible de l'utiliser éventuellement comme tel, grâce à son paramètre).

  10. #10
    Membre du Club Avatar de CoyotteDundee
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2008
    Messages : 54
    Points : 47
    Points
    47
    Par défaut
    Bonjour à tous,

    Je confirme que la solution de Menhir correspond bien à la recherche.
    Cela fonctionne impeccablement !
    Merci à vous deux pour votre aide et vos idées

    Coyotte

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

Discussions similaires

  1. [AC-2010] Lancer une macro à l'ouverture
    Par tintinux dans le forum VBA Access
    Réponses: 9
    Dernier message: 03/09/2015, 14h24
  2. [XL-2003] Lancer une macro à l'ouverture d'Excel quel que soit le fichier
    Par EtyenH dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 05/05/2009, 08h50
  3. Lancer une macro à l'ouverture d'un fichier word
    Par beegees dans le forum VBA Word
    Réponses: 5
    Dernier message: 15/09/2008, 10h16
  4. lancer une macro à l'ouverture d'un classeur
    Par niro75 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/02/2008, 22h09
  5. Lancer une macro à l'ouverture d'un fichier
    Par Tibaldus dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/09/2007, 11h27

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