macro barre d'outils

  • Initiateur de la discussion Initiateur de la discussion gh4
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gh4

XLDnaute Occasionnel
bonjour
j'aimerais m'essayer a la creation de barre d'outils par macro
je ne trouve nul par ou je pourrais suivant cette macro
rajoute un menu titre"mon menu" avec a l'interieur pour l'exemple une ligne "mon choix" je que pourrais recopié pour d'autre ligne

Voici une barre d'outils avec 5 boutons


Option Explicit

Private Sub Workbook_Activate()
Application.CommandBars("BO").Visible = True
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("BO").Delete
End Sub

Private Sub Workbook_Deactivate()
On Error Resume Next
Application.CommandBars("BO").Visible = False
End Sub

Private Sub Workbook_Open()
Dim BO As CommandBar
Dim Bouton1 As Object, Bouton2 As Object, Bouton3 As Object, Bouton4 As Object, Bouton5 As Object ' selectionne le nbr de bouton de la barre

On Error Resume Next
Set BO = Application.CommandBars.Add("BO")
BO.Position = msoBarFloating
BO.Protection = msoBarNoChangeVisible
With BO
Set Bouton1 = .Controls.Add(msoControlButton)
With Bouton1
.Caption = "Affichage BO en haut" 'affichage quand souris passe dessus
.FaceId = 134 'dessin sur le bouton
.OnAction = "Haut" 'lance la macro
End With

Set Bouton2 = .Controls.Add(msoControlButton)
With Bouton2
.Caption = "Affichage BO à droite"
.FaceId = 133
.OnAction = "Droite"
End With

Set Bouton3 = .Controls.Add(msoControlButton)
With Bouton3
.Caption = "Affichage BO en bas"
.FaceId = 135
.OnAction = "Bas"
End With

Set Bouton4 = .Controls.Add(msoControlButton)
With Bouton4
.Caption = "Affichage BO à gauche"
.FaceId = 132
.OnAction = "Gauche"
End With


Set Bouton5 = .Controls.Add(msoControlButton)
With Bouton5
.Caption = "Supprimer"
.FaceId = 2309
.OnAction = "Fermer"
End With

.Visible = True
End With

End Sub
 
Re : macro barre d'outils

Bonjour le Forum, Gh4,

Désolé j'ai rien compris ...

Par contre à la première lecture de ton code quelques remarques :

Declare tes bouton autrement qu'en objet ce sera plus propre par exemple :

Dim Btn_Nom As CommandBarButton
Dim Cbx_Nom As CommandBarComboBox

Ici :
Code:
BO.Position = msoBarFloating
BO.Protection = msoBarNoChangeVisible
With BO

Pourquoi ne pas encapsuler les deux premières lignes dans le With ?

Le on error resume next arghh pas beau !

Pour tes boutons qui appellent une fonction perso, met la valeur builtin a False.

Tag tes boutons comme ceci par exemple : .Tag = "MonBtn1" C'est la seule facon de pouvoir retrouver ton bouton par la suite et de pouvoir agir dessus comme ceci : Set MonBtn = CommandBars("MaBarre").FindControl(, , "btn1").
Donne à tes tags des noms explicites.

Ajoutes l'option : Temporary:=True dans la création de ta barre pour indiquer à Excel qu'elle sera détruite à la fermeture d'Excel qu'elle n'est pas permanente.

Voila quelques conseils, bon courage.

Creepy
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
361
Réponses
4
Affichages
177
Réponses
4
Affichages
461
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
169
Retour