Creation d'une barre d'outils personnalisée avec bouton de commande
Le
Alex

Bonjour à tous,
Tout d'abord, une bonne année 2014.
Je me permets de vous solliciter car je rencontre un problème sur la cr=
éation d'une barre d'outils personnelisé avec bouton de commande ou app=
arait au lancement de la procédure le message suivant :
Erreur d'excution 5 :
Argument ou Appel de procédure incorrect
Mais je ne comprends pas ce qui génère ce message. Faut il que j'ajoute=
une bilbiotheque supplementaire, est ce une erreur de frappe malheureuse.
Merci par avance de votre aide.
Bien cordialement
Alex
Voici ce que j'ai écrit :
Private Sub Workbook_Open()
Dim m_barre As CommandBar
Dim m_Button1 As CommandBarButton
Dim m_Button2 As CommandBarButton
On Error Resume Next
m_barre.Delete
On Error GoTo 0
Set m_barre = Application.CommandBars.Add(Name:="Temps", Position:=ms=
oBarTop, MenuBar:=True, Temporary:=True)
m_barre.Visible = True
Set m_Button1 = m_barre.Controls.Add(Type:=msoControlButton)
With m_Button1
.FaceId = 14
.Caption = "Supprimer une ligne"
.OnAction = "Supp_Ligne"
End With
Set m_Button2 = m_barre.Controls.Add(Type:=msoControlButton)
With m_Button2
.FaceId = 210
.Caption = "Trier les fiches par date"
.OnAction = "Tri"
End With
End Sub
Tout d'abord, une bonne année 2014.
Je me permets de vous solliciter car je rencontre un problème sur la cr=
éation d'une barre d'outils personnelisé avec bouton de commande ou app=
arait au lancement de la procédure le message suivant :
Erreur d'excution 5 :
Argument ou Appel de procédure incorrect
Mais je ne comprends pas ce qui génère ce message. Faut il que j'ajoute=
une bilbiotheque supplementaire, est ce une erreur de frappe malheureuse.
Merci par avance de votre aide.
Bien cordialement
Alex
Voici ce que j'ai écrit :
Private Sub Workbook_Open()
Dim m_barre As CommandBar
Dim m_Button1 As CommandBarButton
Dim m_Button2 As CommandBarButton
On Error Resume Next
m_barre.Delete
On Error GoTo 0
Set m_barre = Application.CommandBars.Add(Name:="Temps", Position:=ms=
oBarTop, MenuBar:=True, Temporary:=True)
m_barre.Visible = True
Set m_Button1 = m_barre.Controls.Add(Type:=msoControlButton)
With m_Button1
.FaceId = 14
.Caption = "Supprimer une ligne"
.OnAction = "Supp_Ligne"
End With
Set m_Button2 = m_barre.Controls.Add(Type:=msoControlButton)
With m_Button2
.FaceId = 210
.Caption = "Trier les fiches par date"
.OnAction = "Tri"
End With
End Sub
Le Hic était cette ligne de code : m_barre.Delete
La barre que tu as créée possède un "NOM" : "TEMPS"
Si tu veux supprimer cette barre de commande si elle existe à
l'ouverture, tu dois l'appeler par son "NOM" : "TEMPS"
Tu n'as aucune barre de commande au nom de : m_barre
d'où l'erreur que tu obtiens.
Ce code fonctionne très bien!
'---------------------------------------------------
Private Sub Workbook_Open()
Dim m_barre As CommandBar
Dim m_Button1 As CommandBarButton
Dim m_Button2 As CommandBarButton
On Error Resume Next
Application.CommandBars("Temps").Delete
On Error GoTo 0
Set m_barre = Application.CommandBars.Add(Name:="Temps", _
Position:=msoBarTop, MenuBar:=True, Temporary:=True)
With m_barre
.Visible = True
Set m_Button1 = .Controls.Add(Type:=msoControlButton)
With m_Button1
.FaceId = 14
.Caption = "Supprimer une ligne"
.OnAction = "Supp_Ligne"
End With
Set m_Button2 = m_barre.Controls.Add(Type:=msoControlButton)
With m_Button2
.FaceId = 210
.Caption = "Trier les fiches par date"
.OnAction = "Tri"
End With
End With
End Sub
'---------------------------------------------------
Ce n'est pas cette ligne de code qui provoque directement l'erreur :
m_barre.Delete
Mais comme cette ligne ne supprime pas la barre "temps" que tu as créée,
lorsque le code tente d'exécuter cette ligne de code, comme la barre existe
déjà
le code affiche le message d'erreur.
Set m_barre = Application.CommandBars.Add(Name:="Temps",
Position:=msoBarTop, MenuBar:=True, Temporary:=True)
Merci pour cette explication.
Cordialement.
Alex