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 :

[VBA-E]-Appeler une macro complémentaire ?


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut [VBA-E]-Appeler une macro complémentaire ?
    Bonjour,
    Je me lance dans la macro complémentaire, et j'ai quelques incertitudes:

    Le seul moyen que j'ai trouvé pour lancer une procédure Sub d'un fichier xla est d'utiliser la cde "Application.Run" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run "MacrosComplémentaires.xla!essai"
    La cde "call" ne semble pas fonctionner !?

    Et si la procédure demande des arguments, je seul moyen que j'ai trouvé est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    temp = Application.Run("MacrosComplémentaires.xla!TriTableauVertical", _
    , 1, 13, 4)
    Avec une variable "temp" qui ne sert à rien du tout et qui reste vide !! .. mais bon, ça marche.

    Mon problème est qu'avec cette notation je n'ai pas l' "aide" qui s'afiche automatiquement concernant les arguments (aide, qui s'afiche quand une procédure est appelée depuis un même module, en précisant le nom de l'argument et son type).

    Savez-vous s'il d'autres moyens de lancer des procédures (ou des fonctions) d'un fichier xla, tout en gardant l'affichage de l'aide sur les arguments ?

    Merci de votre aide,
    Cordialement.

  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
    Lors de la mise au point, je conserve les macros destinées à "devenir" complémentaires dans un xls. Une fois la mise au pt réalisée, j'enregistre le xls en xla. Pas avant.
    Je ne t'aide pas beaucoup sur ce coup là
    Pour le call, comme tu appelles une macro qui se trouve dans un autre fichier, tu dois effectivement le remplacer par Application.run, mais pour une sub, tu n'es pas obligé de mettre "temp =" si tu ne veux qu'envoyer un paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Run  "LeFich.xla!NomAbrégé(""Commandes publiques - Courrier arrivé.xls"")"

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut C'est plus clair, mais ...
    Bonjour,

    Merci pour ta confirmation concernant "Call" et "Application.run".

    Par contre concernant le fait que je puisse ne pas utiliser la variable "temp=", j'ai fait plusieurs tentatives en me servant de la code que tu m'as donné, mais rien n'a fonctionné.

    Peux-tu éclaircir ce point STP avec les éléments suivants :
    - le fichier contenant la macro compl = Fich.xla
    - le fichier source de cette macro = Fich.xls (je sauvegarde aussi mon fichier source xls, sous le même nom)
    - la macro compl = MacroCompl
    - le 1er argument nécessaire pour lancer MAcroCompl = Arg1
    - le 2nd argument nécessaire pour lancer MAcroCompl = Arg2

    A partir de ces éléments, quel est le code qui me permet de m'affranchir du "temp =".

    Merci d'avance pour ton aide.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonjour

    A partir de ces éléments, quel est le code qui me permet de m'affranchir du "temp =".
    Quelle action est réalisée par ta macro complémentaire?


    michel

  5. #5
    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
    C'est une fonction censée retourner quelque chose ou simplement une macro paramétrée ?

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut suite ...
    Bonjour,

    La macro complémentaire trie un tableau dans l'ordre croissant. Si une des cellules correspondant aux tîtres du tableau est activée, la macro complémentaire est lancée : elle prend comme arguments les paramètres du tableau (colonne de début, colonne de fin, nb de lignes, colonne à trier), puis fait le tri du tableau.

    C'est donc une macro complémentaire paramétrée qui ne retourne rien, d'où mon interrogation concernant l'utilisation de la variable "temp ="

    J'espère que ces précisions vous aideront à ... m'aider.

    Merci.

  7. #7
    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
    Donc, le colde que je t'ai passé, qui fait autre chose, fait la même chose
    Tu sépares tes paramètres par une virgule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    NoLigne = "12"
    NoCol = "5"
    Application.Run "LaFich.xla!LaMacro", NoLigne, NoCol
    A+

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 11
    Points : 9
    Points
    9
    Par défaut Et fin !
    Bonjour,

    Je viens d'essayer ton code adapté à ma macro : sans les parenthèses je n'ai plus besoin de la variable temp. Ca marche !
    C'est vraiment super, alors merci beaucoup.

    A+,
    Régolo

  9. #9
    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
    Remercie dadavyvy, je crois bien que c'est lui qui m'a un jour passé ce code

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

Discussions similaires

  1. [XL-2003] Appeler une macro VBA depuis une cellule
    Par Ainelle dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 29/04/2011, 23h43
  2. [XL-2003] Installer et Désinstaller une macros complémentaire par VBA
    Par amerex dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/04/2010, 00h13
  3. [XL-2003] Appel procédure d'une macro complémentaire a l'ouverture du classeur
    Par jeje00 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 16/06/2009, 19h13
  4. [VBA Excel] Pb avec une macro complémentaire
    Par Nyck0las dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/11/2007, 22h19
  5. Appeler une macro a travers un code VBA
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/06/2007, 11h25

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