Rapport de message :*
 

Re: bouton personnalisé dans xla

Titre du sujet : Re: bouton personnalisé dans xla
par Guy le 30/12/2009 12:40:35

Bonjour,

J'ai appelé le classeur auquel tu  cherches à associer la barre d'outils truc.xla.

Je suppose donc que tu disposes d'un tel classeur.
Citation :
le probleme c'est que dès qu'on enregistre en xla, on n'y a plus accès depuis excel. Uniquement depuis l'editeur vb

C'est à dire que truc.xla existe déjà. Si tu le bricoles à partir d'un classeur (.xls) y'aura évidemment un os.

Ce classeur truc.xla étant chargé, puisqu'il s'agit d'un xla, tu as accès aux propriétés de ThisWorkbook de ce classeur dans l'éditeur VBA.
Dans la fenêtre de propriété de ce classeur
Citation :
Poser la propriété IsAddIn de ThisWorkbook de ce classeur à False.

par un clic dans la fenêtre de propriétés, pas dans le code.

Ce faisant en revenant dans Excel c'est bel et bien la première feuille de truc.xla qui apparaît.
Tu pourras vérifier aussi que le titre d'Excel est bien Microsoft Excel - truc.xla

Dans Excel :
Comme le classeur actif est le bon, y attacher la barre d'outils avec la méthode décrite.
Important : S'assurer que le code d'action des boutons est bel et bien dans ce classeur! Sinon l'y mettre et lier les boutons à ces procédures.
Une fois la barre attachée, enregistrer truc.xla par simple clic sur le bouton Enregistrer (disquette). Toujours dans Excel!
Supprimer, par le formulaire de Personnalisation des boutons et barre d'outils, la barre d'outils attachée à truc.xla.
À ce stade la barre d'outils ne sera plus disponible qu'avec truc.xla.

Dans l'éditeur VBA :
Poser, par un clic dans la fenêtre de propriétés pas dans le code, la propriété de ThisWorkbook de truc.xla à True.
Enregistrer à nouveau par clic sur le bouton Enregistrer de l'éditeur VBA!

Voilà, à moins que je ne me sois gouré (ce qui m'arrive souvent néanmoins) ça devrait marcher.

Pour ce qui est de :
Citation :
Je ne mettrai pas l'option de suppression car je souhaite que la barre d'outil reste toujours affichée

Je t'invite à tester avec BarrePerso.xla en commentant la procédure Private Sub Workbook_BeforeClose(Cancel As Boolean)
  • Dans l'éditeur VBA, commenter la procédure
  • Enregistrer! Toujours dans VBA. Autrement la modification sera perdue.
Ensuite amuse-toi à décharger BarrePerso.xla, puis cliquer sur l'un des boutons de BarrePerso (restée présente) et va voir dans l'éditeur de code : BarrePerso.xla y est.

Maintenant jette un oeil aux macros complémentaires chargées. BarrePerso.xla n'y est pas.

Charge-le par le menu des Macros Complémentaires. Que se passe-t-il?

Voilà pour l'heure.

Cordialement,

Guy