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 :

Fonctions communes à plusieurs fichiers


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 173
    Par défaut Fonctions communes à plusieurs fichiers
    Bonjour,

    je me suis mis récemment au VBA et je commence à avoir quelques fonctions bien pratiques qui me servent régulièrement dans plusieurs fichiers. Jusqu'ici, à chaque fois que je faisais un nouveau fichier, je reprogrammais tous. Mais je commence à trouver cela fastidieux, et chercher les anciennes fonctions qu'on sait qu'on a programmées, mais qu'on ne sait plus où, n'est pas pratique. C'est pourquoi je me demande s'il ne serait pas possible de mutualiser certaines fonctions usuelles entre tous mes futurs fichiers Excel.

    Je n'ai trouvé que cette piste dans la FAQ :

    Peut-on appeler une macro d'un autre classeur ?

    Il faut utiliser Run. Cette méthode permet aussi de passer des paramètres. Supposons que mon classeur "calcul.xls" contienne une fonction Log10 telle que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Function Log10(ByVal X As Single) As Single
        Log10 = Log(X) / Log(10#)
    End Function
    Il est possible de l'utiliser depuis un autre classeur en faisant Il est possible de l'utiliser depuis un autre classeur en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Result = Application.Run("calcul.xls!Log10", 1.2)
    Je pourrais éventuellement regrouper toutes mes fonctions dans un seul fichier et y accéder de cette façon, mais faire appel à des fonctions de cette manière n'est pas terrible pour la lisibilité du code. Je pense qu'il y a certainement moyen de procéder autrement, et c'est pouquoi je fais appel à vous.

    Je vous remercie par avance.

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    ce que j'ai fait moi, c'est creer un fichier add-in avec toute les fonctions créée.

    tu centralise toute les fonction au sein d'un seul fichier, et tu le sauvegarde comme étant un fichier add-in

    que tu rajoute dans tes add-ins par la suite.


    voili

    mayekeul

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Par défaut
    Bonjour ANOVA

    Peut etre une solution ici Rendre une fonction opérationnelle dès l'ouverture d'Excel

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

Discussions similaires

  1. DFSORT lignes communes à plusieurs fichiers.
    Par clermont63 dans le forum z/OS
    Réponses: 1
    Dernier message: 04/05/2012, 11h46
  2. [OpenOffice][Texte] Comment créer des entêtes et pieds de page communs à plusieurs fichiers
    Par tbassetto dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 14/11/2008, 16h42
  3. [Shell] Fonction dans plusieurs fichiers
    Par sliderman dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 28/10/2007, 19h30
  4. Réponses: 10
    Dernier message: 08/02/2007, 13h18
  5. Fonction commune à plusieurs champs
    Par scorpion1611 dans le forum Access
    Réponses: 13
    Dernier message: 25/10/2006, 18h55

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