Barre de Menu personnalisée

  • Initiateur de la discussion Initiateur de la discussion CdG06
  • 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 !

CdG06

XLDnaute Nouveau
Bonjour à tout le forum,

Quand j'ouvre un classeur(1), une barre de menu personnelle s'installe. Si j'ouvre un autre classeur(2), comprenant la même barre de menu personnelle, alors il y a plantage.

Je comprend bien, qu'Excel n'apprécie guère qu'on lui demande de faire deux fois la même chose🙄

Dès lors, quel test dois-je faire (pour vérifier si la barre de menu existe déja, quelque soit le classeur ouvert en premier?

Ci après le bout de code de création :

Merci de votre précieuse aide et bonne journée.

____________________________________________

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Créat_barre.supr_barre

End Sub

Private Sub Workbook_Open()
Call Créat_barre.création_barre
Dim FlagClassement As Boolean
Dim Compteur As Integer
FlagClassement = True
Do While FlagClassement = True
FlagClassement = False

Loop

End Sub
 
Re : Barre de Menu personnalisée

Bonjour,

Si la barre est lié au classeur, regarde du coté des évènements "Workbook_Activate" et "Workbook_Deactivate" pour chaque classeur afin de cacher/afficher la barre d'outils correspondante.

Hervé.
 
Re : Barre de Menu personnalisée

Bonjour Theze,

Merci de ta réponse. En fait beaucoup de classeurs utilise la même macro de création de barre de menu. Rarement, j'ouvre 2 classeurs en même temps. Donc je n'ai jamais eu de soucis. Mais quand j'ai besoin que 2 ou 3 classeurs soients ouverts avec cette barre, la ca se gatte...... Et je ne vois pas comment empecher l'activation si un classeur l'a déjà activé.
 
Re : Barre de Menu personnalisée

Re,

Dans ce cas, il te faut tester si ta barre existe à l'ouverture du classeur. Le seul problème, c'est que tu ne peux pas fermer un des classeurs car sinon, la barre sera détruite par "Call Créat_barre.supr_barre" même si un autre classeur utilisant cette barre est encore ouvert.
Pour tester si la barre existe :
Code:
Sub Erreur()

    Dim Barre As CommandBar
    
    'évite le plantage de la barre qui n'existe pas
    On Error Resume Next
    
    Set Barre = Application.CommandBars("Ma barre")
    
    'indique si la barre existe ou non
    If Err.Number = 0 Then
        MsgBox "la barre existe"
    Else
        MsgBox "la barre n'existe pas"
    End If
    
    'plus d'erreur en mémoire
    Err.Clear
    
    'arrête le gestionnaire d'erreur
    On Error GoTo 0

End Sub

Hervé.
 
- 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

Retour