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 :

auto-référence au fichier contenant une macro.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    E-Auditeur
    Inscrit en
    Janvier 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : E-Auditeur
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2018
    Messages : 22
    Par défaut auto-référence au fichier contenant une macro.
    Bonjour à tous,

    dans le developpement de mes macros, je butte sur un problème agaçant sans être bloquant.
    La macro contient des appels à d'autres macros dont la référence contient le nom du fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Inc()
    '
    ' Inc Macro
    '
     
    '
        Application.Run "'B-SAF-FDM 1-7_empty.xlsm'!Cleaning"
        Application.Run "'B-SAF-FDM 1-7_empty.xlsm'!Inception"
    End Sub
    Un problème se pose quand je crée une nouvelle version. si je ne renomme pas toutes ces références, la macro ne peut pas fonctionner.
    Les utilisateurs finaux ont un souci semblable : il ne peuvent pas enregistrer leur travail sous un autre nom et espérer relancer la macro.

    Pourriez-vous me dire comment appeler une sous-macro sans que le nom du fichier soit explicitement utilisé ?

    Merci d'avance;

    Alex

  2. #2
    Expert éminent 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
    Par défaut
    Citation Envoyé par AMRAAM Voir le message
    Pourriez-vous me dire comment appeler une sous-macro sans que le nom du fichier soit explicitement utilisé ?
    Le fonction "boule de cristal" n'étant pas encore intégrée au VBA , il va falloir trouver une logique pour expliquer au code quel est le nom du fichier où se trouve la macro.
    On ne peut pas demander à VBA d'aller scruter tous les fichiers Excel du disque local pour vérifier si la macro fille s'y trouve.

    Est-ce qu'il s'agit d'un fichier seul dans un répertoire particulier ?
    As-t-il un nom qui dépend de la date ou d'un autre paramètre du fichier de la macro mère ?
    Ce nom peut-être être placé dans une cellule du fichier de la macro mère ?

    Cela dit, si je peux me permettre un avis personnel, faire ça c'est un peu une aberration structurelle et une erreur de conception.
    Il faudrait peut-être revoir ce principe à la source.

  3. #3
    Membre averti
    Homme Profil pro
    E-Auditeur
    Inscrit en
    Janvier 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : E-Auditeur
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2018
    Messages : 22
    Par défaut
    Le fichier est complètement autonome et indépendant de tout autre fichier ou dossier. Son nom ne dépend d'aucune variable. Il pourrait porter n'importe quel autre nom. Mon souci est justement que l'appel de macro contraint à ne pas le faire.

    J'ignore dans quel langage vous utilisez la fonction boule de cristal. J'ai entendu dire qu'elle demande un mod Cassandre, qui crée beaucoup de problème de communication.

    Pour Excel, il existe un champ de donnée reprenant le nom actuel du fichier, notamment utilisé dans les en-têtes et pieds-de-page. J'ignore s'il est possible de l'utiliser dans une fonction VBA comme référence relative à une macro, en place de de la référence absolue actuellement utilisée.

  4. #4
    Expert éminent 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
    Par défaut
    Citation Envoyé par AMRAAM Voir le message
    Le fichier est complètement autonome et indépendant de tout autre fichier ou dossier. Son nom ne dépend d'aucune variable. Il pourrait porter n'importe quel autre nom. Mon souci est justement que l'appel de macro contraint à ne pas le faire.
    S'il est impossible d'expliquer à la macro mère comment trouver le fichier de la macro fille, alors ton problème n'a pas de solution.

    Pour Excel, il existe un champ de donnée reprenant le nom actuel du fichier, notamment utilisé dans les en-têtes et pieds-de-page. J'ignore s'il est possible de l'utiliser dans une fonction VBA comme référence relative à une macro, en place de de la référence absolue actuellement utilisée.
    Pour accéder à cette information, il faudrait savoir de quel fichier il s'agit.

    C'est comme si tu ignorait le numéro de téléphone d'une personne et qu'on te réponde que tu n'as qu'à l'appeler par téléphone et lui demander.

  5. #5
    Membre averti
    Homme Profil pro
    E-Auditeur
    Inscrit en
    Janvier 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : E-Auditeur
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2018
    Messages : 22
    Par défaut
    OK

    Merci.

  6. #6
    Membre averti
    Homme Profil pro
    E-Auditeur
    Inscrit en
    Janvier 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : E-Auditeur
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2018
    Messages : 22
    Par défaut
    J'ai demandé sur le forum Microsoft et j'ai reçu une réponse satisfaisante en sept minutes.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Inc()
        <div style="margin-left:40px">Cleaning
        Inception</div>End Sub
    C'est tellement simple que je m'en veux de ne pas l'avoir tenté moi-même.

    J'espère que ça aidera quelqu'un.

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

Discussions similaires

  1. [XL-2010] Lancement fichier Excel contenant une macro
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/11/2012, 17h41
  2. [XL-2007] Fichier contenant une macro
    Par cchasse98 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/08/2012, 18h23
  3. Réponses: 14
    Dernier message: 28/07/2006, 11h20
  4. [EXCEL] : référence circulaire à cause d'une macro
    Par repié dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/01/2006, 11h41
  5. Trouver un fichier contenant une chaine ?
    Par narmataru dans le forum Linux
    Réponses: 2
    Dernier message: 29/04/2004, 11h49

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