bouton personnalisé dans xla
#1
Débutant XLPages

Inscription: 29/12/2009

Messages: 6

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 29-12-2009 12h42
bonjour,

j'arrive très bien à faire un xla
j'aimerais ajouter une barre d'outil personnalisée avec 2 boutons dont j'ai dessiné les images.

je sais que c'est possible car c'est fait dans le fichier mdf xldoublons mais comment faire svp ?

mon but est de transmettre mon xla et qu'à l'execution (et/ou installation) :
la barre d'outil apparaisse avec les boutons que j'ai crée (et qui contiennent les images dessinées).

merci d'avance

Hors Ligne
Rapport   Haut 

Re: bouton personnalisé dans xla
#2
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 29-12-2009 16h08
Bonjour nightfever,

  • Quelle version d'Excel utilises-tu? Excel 2003?
  • Quel est la dimension des images personnelles utilisées 16X16 pixels, autre?
  • Quel est le format de ces images bmp, autre?
  • Ces images sont-elles accompagnées d'un masque aussi au format bmp?
En attendant ces précisions je monte un petit exemple.

Cordialement,

Guy




Hors Ligne
Rapport   Haut 

Re: bouton personnalisé dans xla
#3
Débutant XLPages

Inscription: 29/12/2009

Messages: 6

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 29-12-2009 16h43
alors j'utilise excel 2003 et l'image en question est juste une image que j'ai créée en utilisant l'editeur de bouton.


Hors Ligne
Rapport   Haut 

Re: bouton personnalisé dans xla
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 29-12-2009 18h03
Bonsoir nightfever (et bienvenue sur XLpages.com), Guy, le Forum,

Bon, puisque j'ai aussi travaillé un peu sur ce sujet...

Contrairement à ce que tu crois, l'icône utilisée pour mDF XLdoublons n'est pas une icône personnalisée, mais une icône prédéfinie : FaceId = 1987

Cela dit, il est tout à fait possible de réutiliser une image perso (avec la taille adéquate autant que possible) pour l'affecter à un bouton de ta barre d'outils. Pour cela, on utilise par exemple la simple méthode PasteFace en lieu et place de la propriété FaceId:

Soit une image insérée sur la feuille 1 de ton classeur (feuille qui peut être masquée par la suite), le code suivant va créer un bouton dans la barre d'outils standard et lui affecter une copie de cette image :

   With Application.CommandBars("Standard").Controls.Add(msoControlButton)
        .Caption = "Mon Bouton"
        .Style = msoButtonIconAndCaption
        .OnAction = "MaMacro"
        'Icône
        Sheets(1).Pictures("Image 1").Copy
        .PasteFace
    End With

Tu trouveras en pièce jointe l'exemple que j'ai préparé...

Cordialement,







Pièce jointe:
zip mDF_IcoPersoSurCdBar.zip   [ Taille: 13.75 Ko - Téléchargements: 739 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: bouton personnalisé dans xla
#5
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 29-12-2009 18h15
Bonjour nightfever, Didier,

Petit classeur exemple pour attacher la barre personnelle au classeur truc.xla.
On suppose que la barre perso est déjà formée et on l'associe au classeur en question.
Plus de détails selon le besoin.

Sait-on jamais.

Cordialement,

Guy
Pièce jointe:
xls BarrePersoDansXLA.xls   [ Taille: 71.50 Ko - Téléchargements: 747 ]

Hors Ligne
Rapport   Haut 

Re: bouton personnalisé dans xla
#6
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 29-12-2009 22h09
Bonjour,

Petit classeur (macro complémentaire) qui porte une barre personnelle avec des icônes de boutons tout aussi personnels.

La barre a été créée dans le code du classeur (procédure ConstruireBarre()) et cette procédure de création est commentée. On peut la renvoyer au néant sans problème.
Les icônes de boutons ont ensuite été personnalisés à la mitaine par mes soins.
Les procédures événementielles associées aux deux boutons sont portées par ce classeur.

La barre a été attachée comme indiqué dans le message précédent.
Une fois attachée, la barre a été supprimée d'Excel.
Elle n'est plus partie de l'objet Application mais confinée à BarrePerso.xla

La barre apparaît et disparaît selon que BarrePerso.xla est chargé ou pas.

Cordialement,

Guy





Pièce jointe:
zip BarrePerso.zip   [ Taille: 7.25 Ko - Téléchargements: 669 ]

Hors Ligne
Rapport   Haut 

Re: bouton personnalisé dans xla
#7
Débutant XLPages

Inscription: 29/12/2009

Messages: 6

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 30-12-2009 11h33
merci pour les fichiers.

le zip est exactement ce que je veux faire (avec 2 boutons) mais je n'y arrive toujours pas
attacher une barre dans un xls ne pose aucun souci mais pour un xla, je n'y arrive toujours pas. Je ne mettrai pas l'option de suppression car je souhaite que la barre d'outil reste toujours affichée

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

en partant d'une feuille vierge, je résume :

je vais dans vb et je met dans thisworkbook :

Option Explicit

IsAddin = False
j'enregistre en xla et lorsque je l'execute ca ne m'affiche pas la 1ere feuille. Donc je ne peux pas attacher ma barre d'outil
c'est pourtant la démarche expliquée dans le fichier xls

Hors Ligne
Rapport   Haut 

Re: bouton personnalisé dans xla
#8
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 30-12-2009 12h40
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




Hors Ligne
Rapport   Haut 

Re: bouton personnalisé dans xla
#9
Débutant XLPages

Inscription: 29/12/2009

Messages: 6

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 30-12-2009 15h27
eh bien merci, ça marche mieux mais ce n'est pas encore ça...
pour afficher le xla dans excel et pas vb, c'est bon pour moi

si j'associe la barre d'outil puis les macros pour les bouton dans excel... ben au lancement du xla, il me demande de choisir la macro et ne trouve pas celles présentes dans le xla

si j'utilise le code pour créer la barre d'outil (xla présent dans cette discussion) : il m'affiche bien la barre d'outil, les boutons s'executent mais mes boutons sont sans image
Hors Ligne
Rapport   Haut 

Re: bouton personnalisé dans xla
#10
Accro XLPages

Inscription: 09/01/2008
De Montréal, Québec

Messages: 463

Système d'exploitation:
PC
Version Excel utilisée:
97 à 2016
Posté le : 30-12-2009 15h38
Bon,

Si tu m'envoyais le truc, on pourrait causer de la même chose et ce serait plus simple.

Et là je ne comprends pas :
Citation :
si j'associe la barre d'outil puis les macros pour les bouton dans excel... ben au lancement du xla, il me demande de choisir la macro et ne trouve pas celles présentes dans le xla


Comment charges-tu le xla? Comme un classeur xls par double-clic sur l'icône de fichier, avec le menu Outils/Macros Complémentaires... ?
Comment se fait-il que le code des boutons ne se trouve pas déjà dans ton fichier xla? Où est-il au juste?

Citation :
si j'utilise le code pour créer la barre d'outil (xla présent dans cette discussion) : il m'affiche bien la barre d'outil, les boutons s'executent mais mes boutons sont sans image


Le classeur BarrePerso.xla envoyé n'affiche pas la barre BarrePerso avec les icônes? Si, Non.
Tu recrées une nouvelle barre de même nom avec la procédure de BarrePerso? Oui, Non.
As-tu remarqué que la première chose que fait cette procédure est de détruire la barre existante? Donc les icônes associées! Oui, Non.

Que veut dire au juste
Citation :
pour afficher le xla dans excel et pas vb, c'est bon pour moi
??
Tout fichier xla ou xls affiche dans l'éditeur VBA un VBAProject distinct, je ne pige pas cette remarque.

Cordialement,

Guy

Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes