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 :

Incrire une référence excel en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 33
    Points : 23
    Points
    23
    Par défaut Incrire une référence excel en VBA
    Bonjour à tous

    Bien, le titre semble anodin, la solution pas forcément très complexe.
    C'est que que je me suis dit.
    En fait je dois constater que je n'ai peut être pas tout compris.
    Je fais donc appel à vos connaissances pour me remettre sur le bon chemin. Merci d'avance pour vos réponses...

    Le contexte :
    Je dois mettre à disposition un classeur XL (Classeur.xlsm) bien chargé. (beaucoup de lignes, formules, format conditionnels etc... )
    avec en contrainte, le fait que la présentation soit, dans une certaine mesure, paramétrable....

    J'ai donc opté pour une génération de la dite feuille à partir d'un classeur d'initialisation (ClasseurInit.xlsm)
    Tout se passe bien, je crée mon classeur cible, et pour que mon appli puisse fonctionner, je lui ajoute une référence vers un classeur xlam (Classeur.xlam) qui contient
    - Le code opérationnel de mon appli,
    - Le ruban qui va bien pour le travail de tous les jours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    strNomRef = Replace(strPathXlam & "\" & strNameXlam, "\\", "\")
    Debug.Print "ajout de la référence "; strNomRef; " à "; strClasseurCible
    With ActiveWorkbook.VBProject.References
    .AddFromFile strNomRef
    End With
    Et cela fonctionne pas trop mal, je crée ma feuille, à partir de cette feuille (via le ruban et le code xlam) j'importe les données de ma base access etc....
    Sauf que ...

    Si je ferme Classeur.xlsm et que je le rouvre, ma référence à Classeur.xlam a disparu.
    Il faut rouvrir le code, réinscrire la référence (outils, référence) :
    Naturellement incompatible avec une expérience utilisateur.

    D'où ma (mes) question(s)
    - est ce que je suis en train de chercher à tordre le système (mauvaise utilisation des références) ?
    - si oui,
    quelle solution adopter pour que Classeur.xlam soit présent à l'ouverture de Classeur.xlsm ?
    - si non,
    comment introduire du code dans Classeur.xlsm (à partir de ClasseurInit.xlsm) pour rétablir la référence vers Classeur.xlam à l'ouverture ?

    Merci encore pour vos indications

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par zoulou153 Voir le message
    quelle solution adopter pour que Classeur.xlam soit présent à l'ouverture de Classeur.xlsm ?
    comment introduire du code dans Classeur.xlsm (à partir de ClasseurInit.xlsm) pour rétablir la référence vers Classeur.xlam à l'ouverture ?
    Bonjour,

    Mes fichiers .xlam s'affichent dans le menu Compléments et sont lancés à l'ouverture d'Excel et supprimés des Compléments à la fermeture. Si je veux utiliser la macro complémentaire directement depuis un fichier, je référence le VbaProject (lui donner un autre nom) dans le fichier .xlsm.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 33
    Points : 23
    Points
    23
    Par défaut
    Bonsoir Eric
    Merci de ta réponse.
    Si je la comprend correctement, il faut que dans Classeur.xlsm, il y ait, dans un module exécuté à l'ouverture, les instructions de référencement à Classeur.xlam.
    Je me doutais qu'il fallait creuser de ce côté mais, et c'est l'objet de la deuxième question, comment introduire le code dans Classeur.xlsm à partir de ClasseurInit.xlsm lors de la génération de Classeur.xlsm ?

    Cordialement

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par zoulou153 Voir le message

    Un exemple dans le fichier .xlam joint. Les modules à regarder sont ThisWorkbook et Module1_Menu

    • La suppression systématique à la fermeture permet de mettre en place une nouvelle version d'une macro complémentaire d'une façon transparente pour les utilisateurs.
    • La propriété TooltipText permet de renseigner la version en place.


    Le vidage d'écran montre le référencement de la macro complémentaire dans le fichier de travail. La macro ChargerZoneNommee présente dans le fichier .xlam et invisible dans la liste des macro du menu Développeur, est accessible depuis la macro TestChargerZoneNommee.
    Pour cela, il faut donner un nom à ton projet Vbaproject. Le Vbaproject contenu dans le fichier "Marketing.xlam" s'appelle "Marketing" (original, non ?), mais il aurait pu être appelé autrement.

    Pièce jointe 237779


    Pièce jointe 237783

    Nb : La fonction présente dans la macro complémentaire fait référence à cette discussion : additionner-plage-cellules-contenant-caracteres-numeriques-alphanumeriques

Discussions similaires

  1. [Toutes versions] Comment choisir automatiquement une classe et/ou une référence (librairie) dans VBA Excel
    Par lesteph dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/08/2016, 20h17
  2. Référence à une cellule Excel dans VBA
    Par lok64 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/12/2015, 13h18
  3. Comment protéger une feuille excel en vba avec des paramètres?
    Par Subkill dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/03/2007, 17h21
  4. Comment protéger une feuille excel en vba avec des paramètres?
    Par Subkill dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/03/2007, 17h20
  5. Réponses: 9
    Dernier message: 19/02/2007, 20h33

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