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 :

Menu dans une macro complémentaire


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 863
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 863
    Points : 583
    Points
    583
    Par défaut Menu dans une macro complémentaire
    Bonjour,

    Une macro complémentaire xla (Excel 2003) charge un menu spécifique à l'ouverture d'Excel.

    Cette macro complémentaire inclut des procédures qui étaient gérées auparavant dans des classeurs xls (et qui se trouvent aussi toujours dans ces classeurs)

    Je ne comprends pas pourquoi dans certains cas les commandes du menu ne lancent pas les procédures du classeur xla dans lequel elles se trouvent mais les mêmes commandes des classeurs xls.

    Avez-vous une idée d'où peut venir le problème?

    Merci pour votre aide

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Peux-tu nous expliquer cette phrase, pour ma part je ne l'ai pas comprise :
    Je ne comprends pas pourquoi dans certains cas les commandes du menu ne lancent pas les procédures du classeur xla dans lequel elles se trouvent mais les mêmes commandes des classeurs xls.
    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 863
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 863
    Points : 583
    Points
    583
    Par défaut
    Je vais essayer d'être plus clair.

    Les commandes du menu personnalisé font appel à des procédures.

    Normalement ces procédures sont celles du classeur dans lequel le menu lui-même est défini.

    Une macro xla installe un menu personnalisé

    Dans ce menu personnalisé il y a par exemple la commande "Impression du &détail " :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          .Controls.Add(Type:=msoControlButton).Caption = "Impression du &détail "
          .Controls("Impression du &détail").OnAction = "Impression_Détail"
    Merci

    La procédure lancée "Impression_Détail" quand on sélectionne cette commande devrait être celle qui se trouve dans un des modules de la macro complémentaire xla.

    J'ai remarqué que parfois la commande était recherchée dans le classeur actif et non dans la xla

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    En effet, tu dois indiquer le xla dans lequel se trouve la macro. Run le permet, par contre, je ne pense pas qu'on puisse le faire avec OnAction.
    Dans ce cas-là, il serait nécessaire de passer par une macro intermédiaire, le OnAction désignant cette macro qui elle-même exécuterait la macro complémentaire à l'aide de Run
    Mais je peux me tromper...
    A défaut d'un réponse contraire

    Edit
    A la réflexion, je testerais d'inclure le nom du fichier dans OnAction en respectant la syntaxe utilisée avec Run, "des fois que ça marche..."
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run "'Classeur.xla'!Procédure"
    A tout hasard

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 863
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 863
    Points : 583
    Points
    583
    Par défaut
    Ok mais pour quelle raison la macro en va pas chercher la procédure indiquée après "OnAction" dans le classeur de la macro lui-même?

    De plus le problème n'est pas systématique

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Parce que l'a commande OnAction va d'abord chercher la macro dans ThisWorkbook et ses différents modules (le classeur contenant le contrôle) avant d'avant d'aller se balader ailleurs quand elle le peut...

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 863
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 863
    Points : 583
    Points
    583
    Par défaut
    Je pensai que ThisWorkbook c'était le classeur dans le quel se trouvait la définition du menu

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 863
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 863
    Points : 583
    Points
    583
    Par défaut
    J'ai trouvé la solution sur un newsgroup US :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnAction = ThisWorkbook.Name & "!Procédure"
    Mieux que de mettre en dur le nom du classeur xla

    Merci encore

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

Discussions similaires

  1. Utilisation macro complémentaire dans une macro
    Par Piernod dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/11/2009, 17h04
  2. Exécuter une sub d'un module dans une macro
    Par pnoel-bi dans le forum Access
    Réponses: 3
    Dernier message: 03/03/2006, 11h39
  3. Code asm dans une macro C
    Par progfou dans le forum C
    Réponses: 11
    Dernier message: 01/03/2006, 19h50
  4. Comment insérer une macro excel dans une macro word?
    Par max2245 dans le forum VBA Word
    Réponses: 15
    Dernier message: 07/01/2006, 18h44
  5. pb dans une macro excel VB
    Par syl221 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/10/2005, 18h29

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