Merci,
C'est presque bon !
Ma forme apparait bien lorsque je clic sur le bouton dans le menu mais elle apparait aussi à chaque fois que j'active la fenetre.
Quelques complements :
Je veux que seule cette barre d'outil soit accessible à partir de mon fichier XLS, les barres standard sont alors masquées. Ces opération sont générées à partir de workbook_activate.
A l'inverse si j'ouvre un autre fichier ou que je bascule vers un autre fichier excel, je masque ma barre perso et affiche les barres par défaut. à partir de workbook_deactivate.
Que dois je faire pour corriger cette anomalie ?
Voici mon code :
Private Sub Workbook_Activate()
Dim i As Integer
Dim Cmdbar As CommandBar
Dim CmdPop As CommandBarPopup
Dim CmdBut1 As CommandBarButton
Dim CmdBut2 As CommandBarButton
Dim CmdBut3 As CommandBarButton
' Mise en forme de la fenêtre de l'application
With Application
.ScreenUpdating = False
.WindowState = xlNormal
.Left = 0
.Top = 0
.DisplayScrollBars = False
.DisplayFormulaBar = False
End With
ActiveWindow.WindowState = xlMaximized
Range("A1").Select
'Masque les barres d'outil et de commande afficher par défault dans Excel
For i = 1 To Application.CommandBars.Count
If Application.CommandBars.Item(i).Visible = True Then
Application.CommandBars.Item(i).Enabled = False
End If
Next
'Créer une Barre de Menu personnalisée
Set Cmdbar = Application.CommandBars.Add("TooL UNHAJ", msoBarTop, False, True)
With Cmdbar
.Visible = True
.Protection = msoBarNoMove + msoBarNoCustomize + msoBarNoResize
.Controls.Add Type:=msoControlButton, ID:=2520, Before:=1
.Controls.Add Type:=msoControlButton, ID:=23, Before:=2
.Controls.Add Type:=msoControlPopup, ID:=30009, Before:=3
.Controls("fenêtre").Controls("Nouvelle fenêtre").Delete
.Controls("fenêtre").Controls("Masquer").Delete
.Controls("fenêtre").Controls("Afficher...").Delete
.Controls("fenêtre").Controls("Fractionner").Delete
.Controls("fenêtre").Controls("Figer les volets").Delete
End With
Set CmdPop = Cmdbar.Controls.Add(msoControlPopup, , , 4, True)
With CmdPop
.Caption = "?"
End With
Set CmdBut1 = CmdPop.Controls.Add(msoControlButton, , , 1, True)
With CmdBut1
.Style = msoButtonCaption
.Caption = "S'inscrire sur la liste de diffusion"
.OnAction = "OpenUserForm23Inscription"
.Execute
End With
Set CmdBut2 = CmdPop.Controls.Add(msoControlButton, , , 2, True)
With CmdBut2
.Style = msoButtonCaption
.Caption = "Nous contacter..."
End With
Set CmdBut3 = CmdPop.Controls.Add(msoControlButton, , , 3, True)
With CmdBut3
.Style = msoButtonCaption
.Caption = "A propos de TooL UNHAJ..."
.BeginGroup = True
End With
Set CmdBut3 = Nothing
Set CmdBut2 = Nothing
Set CmdBut1 = Nothing
Set CmdPop = Nothing
Set Cmdbar = Nothing
End Sub
Private Sub Workbook_Deactivate()
Dim i As Integer
ScreenUpdating = False
'Initialisation de la fenêtre Excel lorsque TooL UNHAJ est desactivé ou fermé
With Application
.WindowState = xlMaximized
.DisplayScrollBars = True
.DisplayFormulaBar = True
End With
'Initialise et affiche les Barres par défaut
For i = 1 To Application.CommandBars.Count
Application.CommandBars.Item(i).Enabled = True
Next
Application.CommandBars("TooL UNHAJ").Controls("fenêtre").Reset
'Masque la Barre Personnalisée
Application.CommandBars("TooL UNHAJ").Delete
End Sub
|