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.
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....
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
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
Partager