Macro quand tu nous tiens... tu nous poses des pbms!

B

Bruno

Guest
D'abord bonjour cher lecteur...
Mon problème est simple:
J'ai créé un modèle avec une macro (non même deux mais c'est le même problème!!) affectée à un bouton de la barre du haut et quand je crée un fichier à partir de ce modèle pas de problème le bouton marche mais si je le ferme sans sauvegarder et que je réessaie d'en créer un autre à partir du sus-dit modèle (j'ai l'impression d'être confus non?) mon bouton ne marche plus car la macro affectée au bouton a pris comme chemin d'accès: C:\...\modèle1.xls qui n'existe plus.

A l'aide
 
J

JPH

Guest
J'ai pas tout compris mais cela me semble normal pour un modèle le nom change
Avec une instruction comme:
nom = ActiveWorkbook.FullName
tu as le chemin complet
nomcourt = ActiveWorkbook.Name
le nom du fichier ouvert
Attention si ton fichier n'est pas enregistré (cas de génération d'un modèle)le fullName retourne le name !!!
Maintenant si c'est un fichier texte bien fermer le fichier par un "Close" sans attribut, qui a pour but de fermer tous les fichiers ouvert autre que xls.
Ah si tu avais une demo zipé!!!
 
B

Bruno

Guest
Si j'ai pas de réponse ce soir j'essaierai d'en faire parvenir un rapidement.

En clair tout ce que je voudrais c'est pouvoir créer un modèle avec un bouton dans la barre du haut associé à une macro et que ca marche tout le temps quand on crée un fichier à partir de ce modèle.
 
@

@+Thierry

Guest
Bonsoir Bruno, JPH, le Forum

Si j'ai compris, tu parles d'un bouton d'une des barres d'outils [/i]("affectée à un bouton de la barre du haut")[/i]

Et si toujours j'ai compris, l'étape suivante consiste en une affectation manuelle sur le Custom Bouton créé en barre d'outils (personaliser/affecter une macro)..

Cette opération n'est uniquement valable si tu travailles avec des macros qui se trouvent soit dans une XLA, soit dans un Personal.xls (Perso.xls en FR)

En effet, ce que tu décris est tout à fait logique, le bouton à qui tu as affecté une macro, est lié avec le fichier d'origine qui contient la macro... Même si le nouveau fichier ouvert contient bien la Macro "Brunos_Macro", le Custom Bouton ira chercher sur 'C:\Mes Document\Modele.xls'!Brunos_Macro...

Par consquent soit "Le_Premier_Fichier.xls" existe encore, auquel cas il va s'ouvrir et la macro Brunos_Macro, soit il n'existe plus (ou a été déplacé) et il y aura un message d'erreur...

Ensuite, il y ce phénomène de Enregistrer Sous qui va perpmettre au lien de ce Custom_bouton de "suivre" la derniere Version faite du fichier... (ce que du décris)

Voilà à peu près au stade où tu en es, sous réserve de ma compréhension.

C'est le sbinz !! Il y a plusieurs méthodes pour remédier, mais tout dépend ton niveau...

Soluce Simple :
Tu t'orientes tout simplement sur une Feuille "Interface" qui contiendra tes boutons et tu abandonnes l'idée d'en mettre dans la barre d'outils.

Soluce Intermédiare :
Tu te crée un fichier Perso.xls qui contiendra toutes les macros nécessaires que tu pourras piloter par des Customs Boutons en barre d'outils.Pour info le Personal.xls est un fichier qui placé dans le répertoire "XLStart" démarre au lancement d'Excel, il peut-être caché... (en enrgistrant une nouvelle macro, la fenêtre de dial te demande si tu veux stocker ta macro dans le "Perso.xls"...Dans ce cas il sera généré automatiquement)
(NB Solution valable uniquement en utilisation Mono-WorkStation)

Soluce Avancée :
Ton fichier Modele.xls contient un code qui va créer automatiquement une Barre d'outils perso, avec tous les Customs Boutons nécessaires qui activeront les macros contenus dans le fichier (avantage, tu peux en faire autant de version que tu veux, chacune seront indépendante) (voir ce fichier de Ti Lien supprimé


Voilà Bon Travail
Bonne Soirée à Tous et Toutes
@+Thierry
 
B

Bruno

Guest
Tout d'abord WAOUH! Ca c'est de la réponse!
Un grand merci à toi
Pour les deux premières solutions, j'yavais pensé mais je trouvais pas pratique d'utiliser l'idée de la page avec des boutons car en fait j'ai un bouton qui me sert à créer une nouvelle page quand tu as fini d'en remplir une alors si a chaque fois tu dois zapper entre les différentes sheets c'est une perte de temps.
Pour la deuxième, le problème qui se pose est que mon fichier va avoir besoin d'être déplacé assez souvent et par des utilisateurs lambda et ils riquent d'oublier le fichier macro.xls. Mais il me semble que excel propose de grouper des classeurs mais je n'ai pas réussi à faire marcher cette fonction
La troisième méthode est en cours d'étude; je vais dévorer le fichier que tu envoies et j'éspère que je réussirai à faire ce que je cherche

Merci encore

Bruno
 

Discussions similaires

Réponses
23
Affichages
1 K