Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problem de Création de barre menu personnalisée

9 réponses
Avatar
Laurent Schaeffer
Bonjour et meilleur voux 2009 (Amour, Santé, bonheur et un peu
d'argent...:) )a toutes et tous.

Voila mon problème :
je travaille sur la création d'une barre de menu additionnelle sur
Excel 2007. Comme celle ci doit être compatible avec Excel 97-2003 j'ai
choisis la solution de créer une "commandbar"

Mon souci est que je n'arrive même pas a faire apparaitre le début du
commencement de ma barre en création. Celle ci ne doit s'activer que sur la
feuille un...

Voici le début de ma procédure :

Private Sub Worksheet_Activate()
Dim Ma_Barre As CommandBar
Dim Menu As CommandBarPopup

Set Ma_Barre = CommandBars.Add("Ma Barre")
Set Menu = Ma_Barre.Controls.Add(msoControlPopup)
Menu.Caption = "Mon menu"
Ma_Barre.Visible = True
End Sub

Le souci étant que lorsque j'active ma feuille j'ai ce message d'erreur :
"Argument ou appel de procédure incorrect" sur la ligne .
Set Ma_Barre = CommandBars.Add("Ma Barre")

J'ai trouvé sur excelabo (toujours aussi excellent soit dit au passage pour
les autodidactes de mon genre...) un excellent travail fait par JFA et
FSigonneau... que j'ai essayé de reprendre, le seul souci c'est que
s'appuyer dessus ne me permettra pas de comprendre mon erreur...
Qui a dit que je n'était pas pour la facilité ??? :)

Qui peut m'eclairer un peu de ses lumières ? Merci d'avance pour avoir perdu
un peu de temps pour moi... et encore meilleurs voux...

9 réponses

Avatar
FFO
Salut à toi

Toux mes voeux aussi !!!!

Ton code fonctionne trés bien si la barre de menu n'est pas encore créée
Une fois créée si tu le réexécutes il bug sur la ligne :

Set Ma_Barre = CommandBars.Add("Ma Barre")

car tu demandes de créer à nouveau une nouvelle barre de menu avec un nom "
Ma Barre" déjà affecté à une barre de menu existante

2 solutions

soit tu mets en place une nouvelle procédure à la desactivation de l'onglet
qui supprime la barre de menu créée ce qui permettra de la recréer à la
prochaine activation de cette onglet
Soit tu analyses la présence ou non de cette barre de menu et en fonction de
la créer ou de la rendre visible à l'activation de l'onglet

Je te propose ton code modifier ainsi en prenant cette 2° option :

Private Sub Worksheet_Activate()
Dim Ma_Barre As CommandBar
Dim Menu As CommandBarPopup
For i = 1 To CommandBars.Count
If CommandBars(i).Name = "Ma Barre" Then
CommandBars(i).Visible = True
Existante = 1
Exit For
End If
Next
If Existante = "" Then
Set Ma_Barre = CommandBars.Add("Ma Barre")
Set Menu = Ma_Barre.Controls.Add(msoControlPopup)
Menu.Caption = "Mon menu"
Ma_Barre.Visible = True
End If
End Sub

Celà devrait te convenir

Dis moi !!!!
Avatar
Youky \(BJ\)
Bonjour Laurent,
http://www.excelabo.net/moteurs/compteclic.php?nom=bj-menuflottant
Ici tu dois y trouver ton bonheur, de nombreuses explications dans le
fichier et si besoin reviens là

Youky (BJ)
(BJ) comme bj-menuflottant

"Laurent Schaeffer" a écrit dans le message de news:

Bonjour et meilleur voux 2009 (Amour, Santé, bonheur et un peu
d'argent...:) )a toutes et tous.

Voila mon problème :
je travaille sur la création d'une barre de menu additionnelle sur
Excel 2007. Comme celle ci doit être compatible avec Excel 97-2003 j'ai
choisis la solution de créer une "commandbar"

Mon souci est que je n'arrive même pas a faire apparaitre le début du
commencement de ma barre en création. Celle ci ne doit s'activer que sur
la feuille un...

Voici le début de ma procédure :

Private Sub Worksheet_Activate()
Dim Ma_Barre As CommandBar
Dim Menu As CommandBarPopup

Set Ma_Barre = CommandBars.Add("Ma Barre")
Set Menu = Ma_Barre.Controls.Add(msoControlPopup)
Menu.Caption = "Mon menu"
Ma_Barre.Visible = True
End Sub

Le souci étant que lorsque j'active ma feuille j'ai ce message d'erreur :
"Argument ou appel de procédure incorrect" sur la ligne .
Set Ma_Barre = CommandBars.Add("Ma Barre")

J'ai trouvé sur excelabo (toujours aussi excellent soit dit au passage
pour les autodidactes de mon genre...) un excellent travail fait par JFA
et FSigonneau... que j'ai essayé de reprendre, le seul souci c'est que
s'appuyer dessus ne me permettra pas de comprendre mon erreur...
Qui a dit que je n'était pas pour la facilité ??? :)

Qui peut m'eclairer un peu de ses lumières ? Merci d'avance pour avoir
perdu un peu de temps pour moi... et encore meilleurs voux...


Avatar
Youky \(BJ\)
Cette sub doit être dans un module et voir plus bas pour masquer si besoin
la barre ou la supprimer en quittant
Youky (BJ)

Sub lemenu()
On Error Resume Next
Application.CommandBars("Expertise").Delete
Set myBar = CommandBars.Add(Name:="Expertise", Position:=msoBarFloating, _
Temporary:=True)
Set myControl = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl
.FaceId = 355
.Caption = " Accueil "
.OnAction = "rm"
End With

Set myControl4 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl4
.FaceId = 39
.Caption = "Page suivante"
.OnAction = "suite"
End With

Set myControl3 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl3
.FaceId = 470
.Caption = " Lancer "
.OnAction = "lancer"
End With

Set myControl2 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl2
.FaceId = 29
.Caption = "Page précèdente"
.OnAction = "precedente"
End With

Set myControl6 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl6
.FaceId = 44
.Caption = "Aller à la Feuille Vide"
.OnAction = "feuillevide"
End With

Set myControl5 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl5
.FaceId = 984
.Caption = " Aide "
.OnAction = "aide"
End With

myBar.Visible = True
With myBar
.Left = 735
.Top = 170
End With
myBar.Protection = msoBarNoChangeVisible
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Expertise").Delete
End Sub

Private Sub Workbook_Open()
lemenu
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.CommandBars("Expertise").Visible = True
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Application.CommandBars("Expertise").Visible = False
End Sub

"Laurent Schaeffer" a écrit dans le message de news:

Bonjour et meilleur voux 2009 (Amour, Santé, bonheur et un peu
d'argent...:) )a toutes et tous.

Voila mon problème :
je travaille sur la création d'une barre de menu additionnelle sur
Excel 2007. Comme celle ci doit être compatible avec Excel 97-2003 j'ai
choisis la solution de créer une "commandbar"

Mon souci est que je n'arrive même pas a faire apparaitre le début du
commencement de ma barre en création. Celle ci ne doit s'activer que sur
la feuille un...

Voici le début de ma procédure :

Private Sub Worksheet_Activate()
Dim Ma_Barre As CommandBar
Dim Menu As CommandBarPopup

Set Ma_Barre = CommandBars.Add("Ma Barre")
Set Menu = Ma_Barre.Controls.Add(msoControlPopup)
Menu.Caption = "Mon menu"
Ma_Barre.Visible = True
End Sub

Le souci étant que lorsque j'active ma feuille j'ai ce message d'erreur :
"Argument ou appel de procédure incorrect" sur la ligne .
Set Ma_Barre = CommandBars.Add("Ma Barre")

J'ai trouvé sur excelabo (toujours aussi excellent soit dit au passage
pour les autodidactes de mon genre...) un excellent travail fait par JFA
et FSigonneau... que j'ai essayé de reprendre, le seul souci c'est que
s'appuyer dessus ne me permettra pas de comprendre mon erreur...
Qui a dit que je n'était pas pour la facilité ??? :)

Qui peut m'eclairer un peu de ses lumières ? Merci d'avance pour avoir
perdu un peu de temps pour moi... et encore meilleurs voux...


Avatar
Laurent Schaeffer
Cher FFO

merci a toi, j'avais oublier de préciser que je ne voyais même pas
apparaitre ma barre lors de la création initiale. Serait ce un souci de
configuration d'Excel 2007 car même les exemples de l'aide (!) ne fonctionne
pas dans un module normal...

mais sniff...
En fait je ne vois pas apparaitre ma barre même la première fois... Ni
d'onglet complément où elle devrait se trouver d'ailleurs...
Il s'avère que a la seconde activation de la feuille le problème persiste.
Je vais aller consulter de suite ce que youki me suggère.

Merci encore et je tiens tous le monde au courant.

--
L.Schaeffer

"FFO" a écrit dans le message de
news:
Salut à toi

Toux mes voeux aussi !!!!

Ton code fonctionne trés bien si la barre de menu n'est pas encore créée
Une fois créée si tu le réexécutes il bug sur la ligne :

Set Ma_Barre = CommandBars.Add("Ma Barre")

car tu demandes de créer à nouveau une nouvelle barre de menu avec un nom
"
Ma Barre" déjà affecté à une barre de menu existante

2 solutions

soit tu mets en place une nouvelle procédure à la desactivation de
l'onglet
qui supprime la barre de menu créée ce qui permettra de la recréer à la
prochaine activation de cette onglet
Soit tu analyses la présence ou non de cette barre de menu et en fonction
de
la créer ou de la rendre visible à l'activation de l'onglet

Je te propose ton code modifier ainsi en prenant cette 2° option :

Private Sub Worksheet_Activate()
Dim Ma_Barre As CommandBar
Dim Menu As CommandBarPopup
For i = 1 To CommandBars.Count
If CommandBars(i).Name = "Ma Barre" Then
CommandBars(i).Visible = True
Existante = 1
Exit For
End If
Next
If Existante = "" Then
Set Ma_Barre = CommandBars.Add("Ma Barre")
Set Menu = Ma_Barre.Controls.Add(msoControlPopup)
Menu.Caption = "Mon menu"
Ma_Barre.Visible = True
End If
End Sub

Celà devrait te convenir

Dis moi !!!!


Avatar
Laurent Schaeffer
Très cher Youki ( et FFO)

Il y a une chose encore insaisissable a mes yeux :

Je viens d'insérer la création d'une barre dans un tout nouveau module d'un
tout nouveau document en m'inspirant du classeur de YOUKI : ca
fonctionne...J'ai voulu vérifier j'ai donc enregistré le document,fermé et
rouvert : aucun problème... alors que ça n'était pas le cas...

Juste une question subsidiaire : puis je renommer l'onglet "complément" à ma
convenance et si oui bah euh.... comment??? :)

pour le reste je pense pouvoir me débrouiller (bien que je n'ai toujours pas
saisi le changement en dehors du fait d'avoir fait appel à un module...
sans vouloir digresser il n'y aurai pas ce souci de compatibilité avec Excel
97-2003 je passerai par une réorganisation du ruban beaucoup plus simple à
mon gout ( même si plus fastidieuse il est vrai pour un jeune
autodidacte...)

Merci encore a vous deux
Et donc comme dit Youki elle doit être pilotée depuis un module... enfin
bref.


"Youky (BJ)" a écrit dans le message de
news:
Cette sub doit être dans un module et voir plus bas pour masquer si besoin
la barre ou la supprimer en quittant
Youky (BJ)

Sub lemenu()
On Error Resume Next
Application.CommandBars("Expertise").Delete
Set myBar = CommandBars.Add(Name:="Expertise", Position:=msoBarFloating, _
Temporary:=True)
Set myControl = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl
.FaceId = 355
.Caption = " Accueil "
.OnAction = "rm"
End With

Set myControl4 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl4
.FaceId = 39
.Caption = "Page suivante"
.OnAction = "suite"
End With

Set myControl3 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl3
.FaceId = 470
.Caption = " Lancer "
.OnAction = "lancer"
End With

Set myControl2 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl2
.FaceId = 29
.Caption = "Page précèdente"
.OnAction = "precedente"
End With

Set myControl6 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl6
.FaceId = 44
.Caption = "Aller à la Feuille Vide"
.OnAction = "feuillevide"
End With

Set myControl5 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl5
.FaceId = 984
.Caption = " Aide "
.OnAction = "aide"
End With

myBar.Visible = True
With myBar
.Left = 735
.Top = 170
End With
myBar.Protection = msoBarNoChangeVisible
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Expertise").Delete
End Sub

Private Sub Workbook_Open()
lemenu
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.CommandBars("Expertise").Visible = True
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Application.CommandBars("Expertise").Visible = False
End Sub

"Laurent Schaeffer" a écrit dans le message de news:

Bonjour et meilleur voux 2009 (Amour, Santé, bonheur et un peu
d'argent...:) )a toutes et tous.

Voila mon problème :
je travaille sur la création d'une barre de menu additionnelle sur
Excel 2007. Comme celle ci doit être compatible avec Excel 97-2003 j'ai
choisis la solution de créer une "commandbar"

Mon souci est que je n'arrive même pas a faire apparaitre le début du
commencement de ma barre en création. Celle ci ne doit s'activer que sur
la feuille un...

Voici le début de ma procédure :

Private Sub Worksheet_Activate()
Dim Ma_Barre As CommandBar
Dim Menu As CommandBarPopup

Set Ma_Barre = CommandBars.Add("Ma Barre")
Set Menu = Ma_Barre.Controls.Add(msoControlPopup)
Menu.Caption = "Mon menu"
Ma_Barre.Visible = True
End Sub

Le souci étant que lorsque j'active ma feuille j'ai ce message d'erreur :
"Argument ou appel de procédure incorrect" sur la ligne .
Set Ma_Barre = CommandBars.Add("Ma Barre")

J'ai trouvé sur excelabo (toujours aussi excellent soit dit au passage
pour les autodidactes de mon genre...) un excellent travail fait par JFA
et FSigonneau... que j'ai essayé de reprendre, le seul souci c'est que
s'appuyer dessus ne me permettra pas de comprendre mon erreur...
Qui a dit que je n'était pas pour la facilité ??? :)

Qui peut m'eclairer un peu de ses lumières ? Merci d'avance pour avoir
perdu un peu de temps pour moi... et encore meilleurs voux...






Avatar
Youky \(BJ\)
Oui il faut un module....
pour renommer un onglet en VBA ......Sheets("complément").Name = "Youky"
avec 1 y à la fin
Youky (BJ)

"Laurent Schaeffer" a écrit dans le message de news:

Très cher Youki ( et FFO)

Il y a une chose encore insaisissable a mes yeux :

Je viens d'insérer la création d'une barre dans un tout nouveau module
d'un tout nouveau document en m'inspirant du classeur de YOUKI : ca
fonctionne...J'ai voulu vérifier j'ai donc enregistré le document,fermé et
rouvert : aucun problème... alors que ça n'était pas le cas...

Juste une question subsidiaire : puis je renommer l'onglet "complément" à
ma convenance et si oui bah euh.... comment??? :)

pour le reste je pense pouvoir me débrouiller (bien que je n'ai toujours
pas saisi le changement en dehors du fait d'avoir fait appel à un
module...
sans vouloir digresser il n'y aurai pas ce souci de compatibilité avec
Excel 97-2003 je passerai par une réorganisation du ruban beaucoup plus
simple à mon gout ( même si plus fastidieuse il est vrai pour un jeune
autodidacte...)

Merci encore a vous deux
Et donc comme dit Youki elle doit être pilotée depuis un module... enfin
bref.


"Youky (BJ)" a écrit dans le message de
news:
Cette sub doit être dans un module et voir plus bas pour masquer si
besoin la barre ou la supprimer en quittant
Youky (BJ)

Sub lemenu()
On Error Resume Next
Application.CommandBars("Expertise").Delete
Set myBar = CommandBars.Add(Name:="Expertise", Position:=msoBarFloating,
_
Temporary:=True)
Set myControl = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl
.FaceId = 355
.Caption = " Accueil "
.OnAction = "rm"
End With

Set myControl4 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl4
.FaceId = 39
.Caption = "Page suivante"
.OnAction = "suite"
End With

Set myControl3 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl3
.FaceId = 470
.Caption = " Lancer "
.OnAction = "lancer"
End With

Set myControl2 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl2
.FaceId = 29
.Caption = "Page précèdente"
.OnAction = "precedente"
End With

Set myControl6 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl6
.FaceId = 44
.Caption = "Aller à la Feuille Vide"
.OnAction = "feuillevide"
End With

Set myControl5 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl5
.FaceId = 984
.Caption = " Aide "
.OnAction = "aide"
End With

myBar.Visible = True
With myBar
.Left = 735
.Top = 170
End With
myBar.Protection = msoBarNoChangeVisible
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Expertise").Delete
End Sub

Private Sub Workbook_Open()
lemenu
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.CommandBars("Expertise").Visible = True
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Application.CommandBars("Expertise").Visible = False
End Sub

"Laurent Schaeffer" a écrit dans le message de news:

Bonjour et meilleur voux 2009 (Amour, Santé, bonheur et un peu
d'argent...:) )a toutes et tous.

Voila mon problème :
je travaille sur la création d'une barre de menu additionnelle sur
Excel 2007. Comme celle ci doit être compatible avec Excel 97-2003 j'ai
choisis la solution de créer une "commandbar"

Mon souci est que je n'arrive même pas a faire apparaitre le début du
commencement de ma barre en création. Celle ci ne doit s'activer que sur
la feuille un...

Voici le début de ma procédure :

Private Sub Worksheet_Activate()
Dim Ma_Barre As CommandBar
Dim Menu As CommandBarPopup

Set Ma_Barre = CommandBars.Add("Ma Barre")
Set Menu = Ma_Barre.Controls.Add(msoControlPopup)
Menu.Caption = "Mon menu"
Ma_Barre.Visible = True
End Sub

Le souci étant que lorsque j'active ma feuille j'ai ce message d'erreur
: "Argument ou appel de procédure incorrect" sur la ligne .
Set Ma_Barre = CommandBars.Add("Ma Barre")

J'ai trouvé sur excelabo (toujours aussi excellent soit dit au passage
pour les autodidactes de mon genre...) un excellent travail fait par JFA
et FSigonneau... que j'ai essayé de reprendre, le seul souci c'est que
s'appuyer dessus ne me permettra pas de comprendre mon erreur...
Qui a dit que je n'était pas pour la facilité ??? :)

Qui peut m'eclairer un peu de ses lumières ? Merci d'avance pour avoir
perdu un peu de temps pour moi... et encore meilleurs voux...









Avatar
Laurent Schaeffer
oups désolé YoukY suis-je digne d'être pardonné ? :p

merci pour tout

"Youky (BJ)" a écrit dans le message de
news:eKu$
Oui il faut un module....
pour renommer un onglet en VBA ......Sheets("complément").Name = "Youky"
avec 1 y à la fin
Youky (BJ)

"Laurent Schaeffer" a écrit dans le message de news:

Très cher Youki ( et FFO)

Il y a une chose encore insaisissable a mes yeux :

Je viens d'insérer la création d'une barre dans un tout nouveau module
d'un tout nouveau document en m'inspirant du classeur de YOUKI : ca
fonctionne...J'ai voulu vérifier j'ai donc enregistré le document,fermé
et rouvert : aucun problème... alors que ça n'était pas le cas...

Juste une question subsidiaire : puis je renommer l'onglet "complément" à
ma convenance et si oui bah euh.... comment??? :)

pour le reste je pense pouvoir me débrouiller (bien que je n'ai toujours
pas saisi le changement en dehors du fait d'avoir fait appel à un
module...
sans vouloir digresser il n'y aurai pas ce souci de compatibilité avec
Excel 97-2003 je passerai par une réorganisation du ruban beaucoup plus
simple à mon gout ( même si plus fastidieuse il est vrai pour un jeune
autodidacte...)

Merci encore a vous deux
Et donc comme dit Youki elle doit être pilotée depuis un module... enfin
bref.


"Youky (BJ)" a écrit dans le message de
news:
Cette sub doit être dans un module et voir plus bas pour masquer si
besoin la barre ou la supprimer en quittant
Youky (BJ)

Sub lemenu()
On Error Resume Next
Application.CommandBars("Expertise").Delete
Set myBar = CommandBars.Add(Name:="Expertise", Position:=msoBarFloating,
_
Temporary:=True)
Set myControl = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl
.FaceId = 355
.Caption = " Accueil "
.OnAction = "rm"
End With

Set myControl4 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl4
.FaceId = 39
.Caption = "Page suivante"
.OnAction = "suite"
End With

Set myControl3 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl3
.FaceId = 470
.Caption = " Lancer "
.OnAction = "lancer"
End With

Set myControl2 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl2
.FaceId = 29
.Caption = "Page précèdente"
.OnAction = "precedente"
End With

Set myControl6 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl6
.FaceId = 44
.Caption = "Aller à la Feuille Vide"
.OnAction = "feuillevide"
End With

Set myControl5 = myBar.Controls _
.Add(Type:=msoControlButton)
With myControl5
.FaceId = 984
.Caption = " Aide "
.OnAction = "aide"
End With

myBar.Visible = True
With myBar
.Left = 735
.Top = 170
End With
myBar.Protection = msoBarNoChangeVisible
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Expertise").Delete
End Sub

Private Sub Workbook_Open()
lemenu
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Application.CommandBars("Expertise").Visible = True
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
Application.CommandBars("Expertise").Visible = False
End Sub

"Laurent Schaeffer" a écrit dans le message de
news:
Bonjour et meilleur voux 2009 (Amour, Santé, bonheur et un peu
d'argent...:) )a toutes et tous.

Voila mon problème :
je travaille sur la création d'une barre de menu additionnelle sur
Excel 2007. Comme celle ci doit être compatible avec Excel 97-2003 j'ai
choisis la solution de créer une "commandbar"

Mon souci est que je n'arrive même pas a faire apparaitre le début du
commencement de ma barre en création. Celle ci ne doit s'activer que
sur la feuille un...

Voici le début de ma procédure :

Private Sub Worksheet_Activate()
Dim Ma_Barre As CommandBar
Dim Menu As CommandBarPopup

Set Ma_Barre = CommandBars.Add("Ma Barre")
Set Menu = Ma_Barre.Controls.Add(msoControlPopup)
Menu.Caption = "Mon menu"
Ma_Barre.Visible = True
End Sub

Le souci étant que lorsque j'active ma feuille j'ai ce message d'erreur
: "Argument ou appel de procédure incorrect" sur la ligne .
Set Ma_Barre = CommandBars.Add("Ma Barre")

J'ai trouvé sur excelabo (toujours aussi excellent soit dit au passage
pour les autodidactes de mon genre...) un excellent travail fait par
JFA et FSigonneau... que j'ai essayé de reprendre, le seul souci c'est
que s'appuyer dessus ne me permettra pas de comprendre mon erreur...
Qui a dit que je n'était pas pour la facilité ??? :)

Qui peut m'eclairer un peu de ses lumières ? Merci d'avance pour avoir
perdu un peu de temps pour moi... et encore meilleurs voux...













Avatar
Laurent Schaeffer
Précisions :

En fait lorsque je ne déclare pas mes arguments dans les commandbars genre :

Set MaBarre = CommandBars.Add("Ma Barre", msoBarFloating,False,True) comme
on est censé pouvoir le faire d'après Microsoft (!) , ca ne fonctionne pas :
ma barre n'apparait pas quand je la rends visible

Lorsque je tape un truc du genre

Set MaBarre= CommandBars.Add(name:="Ma Barre", Position := msoBarFloating,
Temporary:= false) elle apparait comme par magie au moment de la rendre
visible... Quelqu'un peut il m'expliquer? S'il a le temps bien sur...

C'est idem pour tout les controls a l'interieur des commandbars, sans
compter que je n'ai pas encore réussis a en faire "apparaitre" sur le côté
avec l'instruction msoBarRight... ca promet d'être long ;-) mais la Patience
est avec moi.

Merci à Yuky pour ton classeur qui m'est d'une plus grande utilité que les
bouquins et l'aide Microsoft...

"Laurent Schaeffer" a écrit dans le message de
news:
Bonjour et meilleur voux 2009 (Amour, Santé, bonheur et un peu
d'argent...:) )a toutes et tous.

Voila mon problème :
je travaille sur la création d'une barre de menu additionnelle sur
Excel 2007. Comme celle ci doit être compatible avec Excel 97-2003 j'ai
choisis la solution de créer une "commandbar"

Mon souci est que je n'arrive même pas a faire apparaitre le début du
commencement de ma barre en création. Celle ci ne doit s'activer que sur
la feuille un...

Voici le début de ma procédure :

Private Sub Worksheet_Activate()
Dim Ma_Barre As CommandBar
Dim Menu As CommandBarPopup

Set Ma_Barre = CommandBars.Add("Ma Barre")
Set Menu = Ma_Barre.Controls.Add(msoControlPopup)
Menu.Caption = "Mon menu"
Ma_Barre.Visible = True
End Sub

Le souci étant que lorsque j'active ma feuille j'ai ce message d'erreur :
"Argument ou appel de procédure incorrect" sur la ligne .
Set Ma_Barre = CommandBars.Add("Ma Barre")

J'ai trouvé sur excelabo (toujours aussi excellent soit dit au passage
pour les autodidactes de mon genre...) un excellent travail fait par JFA
et FSigonneau... que j'ai essayé de reprendre, le seul souci c'est que
s'appuyer dessus ne me permettra pas de comprendre mon erreur...
Qui a dit que je n'était pas pour la facilité ??? :)

Qui peut m'eclairer un peu de ses lumières ? Merci d'avance pour avoir
perdu un peu de temps pour moi... et encore meilleurs voux...


Avatar
Youky \(BJ\)
à la fin de ta macro bien mettre ceci
MaBarre.Visible = True
MaBarre.Protection = msoBarNoChangeVisible 'pas de croix
MaBarre.Position = msoBarRight

on ne déplace pas seulement une icone mais la barre
Youky (BJ)

"Laurent Schaeffer" a écrit dans le message de news:

Précisions :

En fait lorsque je ne déclare pas mes arguments dans les commandbars genre
:

Set MaBarre = CommandBars.Add("Ma Barre", msoBarFloating,False,True) comme
on est censé pouvoir le faire d'après Microsoft (!) , ca ne fonctionne pas
: ma barre n'apparait pas quand je la rends visible

Lorsque je tape un truc du genre

Set MaBarre= CommandBars.Add(name:="Ma Barre", Position := msoBarFloating,
Temporary:= false) elle apparait comme par magie au moment de la rendre
visible... Quelqu'un peut il m'expliquer? S'il a le temps bien sur...

C'est idem pour tout les controls a l'interieur des commandbars, sans
compter que je n'ai pas encore réussis a en faire "apparaitre" sur le côté
avec l'instruction msoBarRight... ca promet d'être long ;-) mais la
Patience est avec moi.

Merci à Yuky pour ton classeur qui m'est d'une plus grande utilité que les
bouquins et l'aide Microsoft...

"Laurent Schaeffer" a écrit dans le message de
news:
Bonjour et meilleur voux 2009 (Amour, Santé, bonheur et un peu
d'argent...:) )a toutes et tous.

Voila mon problème :
je travaille sur la création d'une barre de menu additionnelle sur
Excel 2007. Comme celle ci doit être compatible avec Excel 97-2003 j'ai
choisis la solution de créer une "commandbar"

Mon souci est que je n'arrive même pas a faire apparaitre le début du
commencement de ma barre en création. Celle ci ne doit s'activer que sur
la feuille un...

Voici le début de ma procédure :

Private Sub Worksheet_Activate()
Dim Ma_Barre As CommandBar
Dim Menu As CommandBarPopup

Set Ma_Barre = CommandBars.Add("Ma Barre")
Set Menu = Ma_Barre.Controls.Add(msoControlPopup)
Menu.Caption = "Mon menu"
Ma_Barre.Visible = True
End Sub

Le souci étant que lorsque j'active ma feuille j'ai ce message d'erreur :
"Argument ou appel de procédure incorrect" sur la ligne .
Set Ma_Barre = CommandBars.Add("Ma Barre")

J'ai trouvé sur excelabo (toujours aussi excellent soit dit au passage
pour les autodidactes de mon genre...) un excellent travail fait par JFA
et FSigonneau... que j'ai essayé de reprendre, le seul souci c'est que
s'appuyer dessus ne me permettra pas de comprendre mon erreur...
Qui a dit que je n'était pas pour la facilité ??? :)

Qui peut m'eclairer un peu de ses lumières ? Merci d'avance pour avoir
perdu un peu de temps pour moi... et encore meilleurs voux...