|  | auteur : SilkyRoad |  
Cet exemple est placé dans le module objet du classeur et utilise 
 l'évènement Workbook_Open.  
De cette manière, la barre est créée automatiquement lors de l'ouverture du fichier.
 | Vba |  
Private Sub Workbook_Open()
    Dim CmdBar As CommandBar
    Dim Bouton As CommandBarButton
    
    
    Set CmdBar = Application.CommandBars _
        .Add(Name:="MaBarrePerso", Position:=msoBarTop, Temporary:=True)
    
    
    Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
    With Bouton
        
        .FaceId = 133
        
        
        .OnAction = "Macro1"
    End With
    
    Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
    With Bouton
        .FaceId = 134
        .OnAction = "Macro2"
    End With
    
    Set Bouton = CmdBar.Controls.Add(Type:=msoControlButton)
    With Bouton
         .FaceId = 135
        .OnAction = "Macro3"
    End With
    
    CmdBar.Visible = True
End Sub
  |  
 | Vba |  
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    On Error Resume Next
    Application.CommandBars("MaBarrePerso").Delete
End Sub
  |  
 
 
  
Rappel: 
Dans Excel2007, les menus et barres d'outils personnels sont stockés dans l'onglet "Complément".
  	
 
  |  
  |  | auteur : SilkyRoad |  
Effectuez un clic droit sur les barres d'outils. 
Sélectionnez l'option Personnaliser dans le menu contextuel. 
La boîte de dialogue "Personnalisation" s'affiche à l'écran. 
Refaites un clic droit dans les barres d'outils, sur le bouton dont vous souhaitez copier l'image. 
Sélectionnez l'option "Copier l'image du bouton". 
Vous pouvez ensuite effectuer un collage de l'image sur un autre bouton en sélectionnant l'option "Coller l'image du bouton".
  
Pour coller l'image dans la feuille de calcul, fermez la boîte de dialogue "Personnalisation", sélectionnez une cellule 
puis effectuez le collage (Ctrl+V).
  
 
  |  
 
 
  |  | auteur : SilkyRoad |  
Effectuez un clic droit sur la barre de menus. 
Sélectionnez l'option Personnaliser. 
Sélectionnez l'onglet Commandes dans la boîte de dialogue Personnalisation. 
Choisissez Outils dans la liste des catégories. 
Sélectionnez Personnaliser (avec l'icône de la calculatrice sur la gauche) dans la liste des commandes. 
Gardez le bouton gauche de la souris enfoncé et faites glisser la calculatrice jusqu'à l'emplacement de votre choix dans 
la barre de menus.
  
Pendant que la boîte de dialogue Personnalisation est affichée, vous pouvez modifier le nom attribué en faisant un 
clic droit sur le bouton qui vient d'être ajouté.
 
  |  
 
 
  |  | auteur : SilkyRoad |  
Le menu contextuel des cellules apparait lorsque vous faites un clic droit dans la feuille de calcul. 
Celui ci peut être paramétré afin d'ajouter ou supprimer des transactions personnalisées.
  
La macro suivante permet de la réinitialiser le menu contextuel:
  
 | Vba |  
Application.CommandBars("cell").Reset
  |  
  |  
  |  | auteur : SilkyRoad |  
Vous pouvez atteindre les menus et boutons personnalisés en ouvrant l'onglet Complément dans le ruban. 
  
 
  |  
 
 
  |  | auteur : SilkyRoad |  
Les FaceID sont les images qui apparaissent sur les boutons des barres d'outils.	
  
 | Vba |  
Sub Liste_FaceIDs()
    Dim tBar As CommandBar
    Dim i As Long
    
    On Error Resume Next
    Application.CommandBars("BarreTemp").Delete
    On Error GoTo 0
    
    
    Worksheets("Feuil1").Pictures.Delete
    Worksheets("Feuil1").Cells.ClearContents
    Application.ScreenUpdating = False
    
    Set tBar = Application.CommandBars.Add(Name:="BarreTemp")
    For i = 1 To 1870
        On Error Resume Next
        
        tBar.Controls(1).Delete
        On Error GoTo 0
        
        
        With tBar.Controls.Add(Type:=msoControlButton)
            
            .FaceId = i
            
            .CopyFace
        End With
        
        
        Worksheets("Feuil1").Paste
        
        
        With Worksheets("Feuil1").Shapes(i)
            .Top = Cells(i, 1).Top
            .Left = 15
            .Name = "ID_" & i
        End With
        
    Next i
    
    
    Application.CommandBars("BarreTemp").Delete
    Application.ScreenUpdating = True
    
    MsgBox "Terminé."
End Sub
  |  
  |  
 
 
 
						Consultez les autres F.A.Q's
					 
 Les sources présentés sur cette pages sont libre de droits,
			et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs.
			Copyright ©2008 
			Developpez LLC. Tout droits réservés Developpez LLC.
			Aucune reproduction, même partielle, ne peut être faite de ce site et de
			l'ensemble de son contenu : textes, documents et images sans l'autorisation
			expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans
			de prison et jusqu'à 300 000 E de dommages et intérets.
			Cette page est déposée à la SACD. 
												 |