[RESOLU]Créer ma barre d'outil avec VB

Créer ma barre d'outil avec VB [RESOLU] - VB/VBA/VBS - Programmation

Marsh Posté le 20-06-2006 à 15:11:24    

Bonjour,  
J'ai créé une barre d'outil perso et je dois diffuser ma macro sur pleins de postes dans différents coins du monde...Ma macro est donc constituée de fonctions qui sont accessibles par les boutons de ma barre de menus.
Au début j'avais fais un test ds AutoOpen() genre:  
If toolbar < 1 Then  
  'je créais ma barre  
EndIf
Et dans AutoClose() si toolbar était >1 je l'effaçais ms ça me posais plein de problème dc je voudrais la créer une bonne fois pour toute ds Normal.dot et si les utilisateurs ne veulent plus la voir, ils n'auront qu'à décocher la case ds Outils/Personnaliser comme par exemple la barre d'outil "Standard".
Seulement je sais pas comment faire pour installer ça chez les clients une fois seulement...mettre un bouton qui disparaît ensuite?... ms cmt faire pour que n'arrive qu'une fois?  
Si vous avez une meilleure idée ou une solution à la mienne: je prends!
Merci


Message édité par acorsa le 21-06-2006 à 09:03:34
Reply

Marsh Posté le 20-06-2006 à 15:11:24   

Reply

Marsh Posté le 20-06-2006 à 23:52:07    

A titre d'information


'     A Placer dans un Module
Public Sub CreationBO()
Dim BaBar As CommandBar, Btn1, Btn2, Btn3
  'Supprime la barre si elle existe déjà
  On Error Resume Next
    Application.CommandBars("MaBarre" ).Delete
  On Error GoTo 0
   
  'Set BaBar = Application.CommandBars.Add("MaBarre" )
  'BaBar.Left = 50
  'BaBar.Top = 120
  Set BaBar = Application.CommandBars.Add("MaBarre", Position:=msoBarTop, MenuBar:=False, temporary:=True)
  BaBar.Protection = msoBarNoChangeVisible
   
  With BaBar
    Set Btn1 = .Controls.Add(msoControlButton)
    With Btn1
      .Caption = "1er bouton"
      .FaceId = 3
      .OnAction = "Macro1"
    End With
     
    Set Btn2 = .Controls.Add(msoControlButton)
    With Btn2
      .Caption = "2eme bouton"
      .FaceId = 4
      .OnAction = "Macro2"
    End With
     
    Set Btn3 = .Controls.Add(msoControlButton)
    With Btn3
      .Caption = "3eme bouton"
      .FaceId = 2520
      .OnAction = "Macro3"
    End With
    .Visible = True
  End With
End Sub
 
Private Sub Macro1()
  MsgBox "Bouton 1"
End Sub
 
Private Sub Macro2()
  MsgBox "Bouton 2"
End Sub
 
Private Sub Macro3()
  MsgBox "Bouton 3"
End Sub
 
Public Sub DetruireBO()
  On Error Resume Next
  Application.CommandBars("MaBarre" ).Delete
End Sub
 
'     A placer dans ThisWorkBook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    DetruireBO
End Sub
 
Private Sub Workbook_Open()
    CreationBO
End Sub


Message édité par kiki29 le 21-06-2006 à 02:50:44
Reply

Marsh Posté le 21-06-2006 à 09:03:10    

Merci beaucoup!!C'est super sympa...
Bonne journée

Reply

Marsh Posté le 21-06-2006 à 10:50:38    

En complément pour le FaceID
 


Private Sub AfficheIconesBoutons()
Dim NewBO As CommandBar
Dim NewBtn As CommandBarButton
Dim i As Long, IcoDepart As Long, IcoFin As Long
 
  On Error Resume Next
    Application.CommandBars("BarBouton" ).Delete
  On Error GoTo 0
 
  Set NewBO = Application.CommandBars.Add(Name:="BarBouton", temporary:=True)
  NewBO.Visible = True
   
  ' Plage à choisir suivant la patience de l'utilisateur pour affichage
  IcoDepart = 1: IcoFin = 210
 
  For i = IcoDepart To IcoFin
    Set NewBtn = NewBO.Controls.Add(Type:=msoControlButton, ID:=2950)
    With NewBtn
        .FaceId = i
        .Caption = "FaceID = " & i
    End With
  Next i
   
  With NewBO
    .Width = 700
    .Left = 50
    .Top = 120
  End With
End Sub

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed