j'ai du faire une connerie et =E0 pr=E9sent mon menu perso en XL2007 se pla=
nte et ensuite mon personnal.xlsb qui est bien dans le r=E9pertoire XLSTART=
=E0 partir duquel le menu se cr=E9ait ne se charge plus...sauf si je doubl=
e clique sur ce personnal.xlsb.
Je mets ici le d=E9but (une macro dans le menu, il y en a 10 normalement) d=
e la cr=E9ation qui fonctionnait pourtant depuis 2005 !
Le message d'erreur est : "la m=E9thode 'onaction de l'objet _ commandbarbu=
tton a =E9chou=E9"
Merci de votre aide=20
Sub CreationMenu() '2005
Dim Monmenu As CommandBarControl
Dim Ajout As CommandBarPopup ' , Monmenu As CommandBar
Dim MenuItem As CommandBarControl
'Efface le menu s'il existe encore
DeleteNouveauMenu ' effacer avant de recr=E9=E9er
Set Monmenu =3D Application.CommandBars(1).FindControl(ID:=3D30010)
If Monmenu Is Nothing Then
' Add the menu to the end
Set Ajout =3D CommandBars(1).Controls.Add(Type:=3DmsoControlPopup, Temporar=
y:=3DTrue)
Else
' Add the menu before Help
Set Ajout =3D CommandBars(1).Controls.Add(Type:=3DmsoControlPopup, before:=
=3DMonmenu.Index, Temporary:=3DTrue)
End If
' ajoute l'=E9tiquette au menu
Dim Auteur As String
Auteur =3D "Menu personnel" 'plus complet ( 02/2015 )
Ajout.Caption =3D Auteur
' Premier ITEM du MENU
Set MenuItem =3D Ajout.Controls.Add(Type:=3DmsoControlButton)
With MenuItem
.Caption =3D "Propri=E9tes du document"
.FaceId =3D 162 'ic=F4ne =E0 c=F4t=E9 du texte de commande
'---- c'est sur cette ligne que =E7a plante
.OnAction =3D "Prop" 'Nom de la macro - qui existe bien sur=20
'-----
End With
end sub
Sub DeleteNouveauMenu()
On Error Resume Next
Dim Auteur As String, Caption
Auteur =3D "Menu personnel"
Caption =3D Auteur
CommandBars(1).Controls(Auteur).Delete
End Sub
Lorsque tu as ce message "la méthode 'onaction de l'objet _ commandbarbutton a échoué", est-ce que tu as une ligne en surbrillance? Si oui, laquelle? Est-ce que tu as ce message lorsque tu cliques sur ton fichier xlsb à partir de l'explorateur Windows lorsque tu tentes de l'ouvrir en solitaire? Si dans ces procédures, tu utilises une gestion d'erreur, désactive-la pendant que tu fais ces tests.
Je n'ai pas vu la macro "DeleteNouveauMenu" mais j'utiliserais systématiquement à l'appel de ce type de macro à chaque ouverture du fichier.
'------------------------------- Sub DeleteNouveauMenu() Dim C As CommandBarControl On Error Resume Next For Each C In Application.CommandBars(1).Controls If C.BuiltIn = False Then C.Delete End If Next End Sub '-------------------------------
Pour ce qui est du classeur de macros personnels, tu peux toujours faire glisser les modules de ce dernier vers un nouveau classeur en n'oubliant pas de faire un copier-coller des macros du Thisworkbook et des modules feuilles. Lorsque le tout est sauvegardé, tu fermes Excel et tu supprimes ton classeur de macros personnelles. Lors de la réouverture d'Excel, tu recrées le classeur de macros personnelles et tu y ajoutes les modules et macros que tu as sauvegardées.
Difficile de voir ce qui ne pas pas en pleine noirceur! ;-))
Bonjour,
La macro que tu as publiée est fonctionnelle.
Lorsque tu as ce message "la méthode 'onaction de l'objet _
commandbarbutton a échoué", est-ce que tu as une ligne
en surbrillance? Si oui, laquelle? Est-ce que tu as ce message
lorsque tu cliques sur ton fichier xlsb à partir de l'explorateur
Windows lorsque tu tentes de l'ouvrir en solitaire? Si dans ces
procédures, tu utilises une gestion d'erreur, désactive-la pendant
que tu fais ces tests.
Je n'ai pas vu la macro "DeleteNouveauMenu" mais j'utiliserais
systématiquement à l'appel de ce type de macro à chaque ouverture du
fichier.
'-------------------------------
Sub DeleteNouveauMenu()
Dim C As CommandBarControl
On Error Resume Next
For Each C In Application.CommandBars(1).Controls
If C.BuiltIn = False Then
C.Delete
End If
Next
End Sub
'-------------------------------
Pour ce qui est du classeur de macros personnels, tu peux toujours
faire glisser les modules de ce dernier vers un nouveau classeur en
n'oubliant pas de faire un copier-coller des macros du Thisworkbook et
des modules feuilles. Lorsque le tout est sauvegardé, tu fermes Excel et
tu supprimes ton classeur de macros personnelles. Lors de la réouverture
d'Excel, tu recrées le classeur de macros personnelles et tu y ajoutes
les modules et macros que tu as sauvegardées.
Difficile de voir ce qui ne pas pas en pleine noirceur! ;-))
Lorsque tu as ce message "la méthode 'onaction de l'objet _ commandbarbutton a échoué", est-ce que tu as une ligne en surbrillance? Si oui, laquelle? Est-ce que tu as ce message lorsque tu cliques sur ton fichier xlsb à partir de l'explorateur Windows lorsque tu tentes de l'ouvrir en solitaire? Si dans ces procédures, tu utilises une gestion d'erreur, désactive-la pendant que tu fais ces tests.
Je n'ai pas vu la macro "DeleteNouveauMenu" mais j'utiliserais systématiquement à l'appel de ce type de macro à chaque ouverture du fichier.
'------------------------------- Sub DeleteNouveauMenu() Dim C As CommandBarControl On Error Resume Next For Each C In Application.CommandBars(1).Controls If C.BuiltIn = False Then C.Delete End If Next End Sub '-------------------------------
Pour ce qui est du classeur de macros personnels, tu peux toujours faire glisser les modules de ce dernier vers un nouveau classeur en n'oubliant pas de faire un copier-coller des macros du Thisworkbook et des modules feuilles. Lorsque le tout est sauvegardé, tu fermes Excel et tu supprimes ton classeur de macros personnelles. Lors de la réouverture d'Excel, tu recrées le classeur de macros personnelles et tu y ajoutes les modules et macros que tu as sauvegardées.
Difficile de voir ce qui ne pas pas en pleine noirceur! ;-))
Patrick
Merci Denis, je n'ai pas de gestion d'erreur genre "on error resume next" si c'est ça que tu veux dire; pour la ligne qui est en surbrillance, c'est celle qui fait appel à la macro "prop"
--------------------- .on action = "prop" ' sub() qui existe bien --------------------- et je viens de la placer sous ce code de création de menu pour voir et ça ne change rien... Le code "deletenouveaumenu est celui-ci:
Sub DeleteNouveauMenu() On Error Resume Next Dim Auteur As String, Caption Auteur = "Menu personnel" ' Caption = Auteur CommandBars(1).Controls(Auteur).Delete End Sub
Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlstart, puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL et j'ai écrasé le nouveau avec l'ancien bcp plus gros.
Jamais eu ça avant.. grrrrr
Le 25-01-16 19:58, MichD a écrit :
Bonjour,
La macro que tu as publiée est fonctionnelle.
Lorsque tu as ce message "la méthode 'onaction de l'objet _ commandbarbutton a échoué", est-ce que tu as une ligne en surbrillance? Si oui, laquelle? Est-ce que tu as ce message lorsque tu cliques sur ton fichier xlsb à partir de l'explorateur Windows lorsque tu tentes de l'ouvrir en solitaire? Si dans ces procédures, tu utilises une gestion d'erreur, désactive-la pendant que tu fais ces tests.
Je n'ai pas vu la macro "DeleteNouveauMenu" mais j'utiliserais systématiquement à l'appel de ce type de macro à chaque ouverture du fichier.
'------------------------------- Sub DeleteNouveauMenu() Dim C As CommandBarControl On Error Resume Next For Each C In Application.CommandBars(1).Controls If C.BuiltIn = False Then C.Delete End If Next End Sub '-------------------------------
Pour ce qui est du classeur de macros personnels, tu peux toujours faire glisser les modules de ce dernier vers un nouveau classeur en n'oubliant pas de faire un copier-coller des macros du Thisworkbook et des modules feuilles. Lorsque le tout est sauvegardé, tu fermes Excel et tu supprimes ton classeur de macros personnelles. Lors de la réouverture d'Excel, tu recrées le classeur de macros personnelles et tu y ajoutes les modules et macros que tu as sauvegardées.
Difficile de voir ce qui ne pas pas en pleine noirceur! ;-))
Merci Denis,
je n'ai pas de gestion d'erreur genre "on error resume next" si c'est ça
que tu veux dire;
pour la ligne qui est en surbrillance, c'est celle qui fait appel à la
macro "prop"
---------------------
.on action = "prop" ' sub() qui existe bien
---------------------
et je viens de la placer sous ce code de création de menu pour voir et
ça ne change rien...
Le code "deletenouveaumenu est celui-ci:
Sub DeleteNouveauMenu()
On Error Resume Next
Dim Auteur As String, Caption
Auteur = "Menu personnel" '
Caption = Auteur
CommandBars(1).Controls(Auteur).Delete
End Sub
Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlstart,
puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL et j'ai
écrasé le nouveau avec l'ancien bcp plus gros.
Jamais eu ça avant.. grrrrr
Le 25-01-16 19:58, MichD a écrit :
Bonjour,
La macro que tu as publiée est fonctionnelle.
Lorsque tu as ce message "la méthode 'onaction de l'objet _
commandbarbutton a échoué", est-ce que tu as une ligne
en surbrillance? Si oui, laquelle? Est-ce que tu as ce message
lorsque tu cliques sur ton fichier xlsb à partir de l'explorateur
Windows lorsque tu tentes de l'ouvrir en solitaire? Si dans ces
procédures, tu utilises une gestion d'erreur, désactive-la pendant
que tu fais ces tests.
Je n'ai pas vu la macro "DeleteNouveauMenu" mais j'utiliserais
systématiquement à l'appel de ce type de macro à chaque ouverture du
fichier.
'-------------------------------
Sub DeleteNouveauMenu()
Dim C As CommandBarControl
On Error Resume Next
For Each C In Application.CommandBars(1).Controls
If C.BuiltIn = False Then
C.Delete
End If
Next
End Sub
'-------------------------------
Pour ce qui est du classeur de macros personnels, tu peux toujours
faire glisser les modules de ce dernier vers un nouveau classeur en
n'oubliant pas de faire un copier-coller des macros du Thisworkbook et
des modules feuilles. Lorsque le tout est sauvegardé, tu fermes Excel et
tu supprimes ton classeur de macros personnelles. Lors de la réouverture
d'Excel, tu recrées le classeur de macros personnelles et tu y ajoutes
les modules et macros que tu as sauvegardées.
Difficile de voir ce qui ne pas pas en pleine noirceur! ;-))
Merci Denis, je n'ai pas de gestion d'erreur genre "on error resume next" si c'est ça que tu veux dire; pour la ligne qui est en surbrillance, c'est celle qui fait appel à la macro "prop"
--------------------- .on action = "prop" ' sub() qui existe bien --------------------- et je viens de la placer sous ce code de création de menu pour voir et ça ne change rien... Le code "deletenouveaumenu est celui-ci:
Sub DeleteNouveauMenu() On Error Resume Next Dim Auteur As String, Caption Auteur = "Menu personnel" ' Caption = Auteur CommandBars(1).Controls(Auteur).Delete End Sub
Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlstart, puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL et j'ai écrasé le nouveau avec l'ancien bcp plus gros.
Jamais eu ça avant.. grrrrr
Le 25-01-16 19:58, MichD a écrit :
Bonjour,
La macro que tu as publiée est fonctionnelle.
Lorsque tu as ce message "la méthode 'onaction de l'objet _ commandbarbutton a échoué", est-ce que tu as une ligne en surbrillance? Si oui, laquelle? Est-ce que tu as ce message lorsque tu cliques sur ton fichier xlsb à partir de l'explorateur Windows lorsque tu tentes de l'ouvrir en solitaire? Si dans ces procédures, tu utilises une gestion d'erreur, désactive-la pendant que tu fais ces tests.
Je n'ai pas vu la macro "DeleteNouveauMenu" mais j'utiliserais systématiquement à l'appel de ce type de macro à chaque ouverture du fichier.
'------------------------------- Sub DeleteNouveauMenu() Dim C As CommandBarControl On Error Resume Next For Each C In Application.CommandBars(1).Controls If C.BuiltIn = False Then C.Delete End If Next End Sub '-------------------------------
Pour ce qui est du classeur de macros personnels, tu peux toujours faire glisser les modules de ce dernier vers un nouveau classeur en n'oubliant pas de faire un copier-coller des macros du Thisworkbook et des modules feuilles. Lorsque le tout est sauvegardé, tu fermes Excel et tu supprimes ton classeur de macros personnelles. Lors de la réouverture d'Excel, tu recrées le classeur de macros personnelles et tu y ajoutes les modules et macros que tu as sauvegardées.
Difficile de voir ce qui ne pas pas en pleine noirceur! ;-))
MichD
macro "prop" ****Je suppose que la macro "Prop" est dans un MODULE STANDARD
"Le message d'erreur est : "la méthode 'onaction de l'objet _ commandbarbutton a échoué" .on action = "prop" ****ce message d'erreur suggère que la méthode "OnAction" est utilisée sur un contrôle qui ne possède pas cette méthode
Quel est le type du contrôle auquel tu affectes cette action? Peux-tu donner la macro?
Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlstart, puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL et j'ai écrasé le nouveau avec l'ancien bcp plus gros.
**** À la place d'écraser le nouveau fichier .xlsb, j'aurais fait un copier-coller de toutes les macros de l'ancien fichier de macros complémentaires vers le nouveau fichier .xlsb en prenant soin de copier ces procédures dans les bons modules.
macro "prop"
****Je suppose que la macro "Prop" est dans un MODULE STANDARD
"Le message d'erreur est : "la méthode 'onaction de l'objet _
commandbarbutton a échoué"
.on action = "prop"
****ce message d'erreur suggère que la méthode "OnAction" est
utilisée sur un contrôle qui ne possède pas cette méthode
Quel est le type du contrôle auquel tu affectes cette action?
Peux-tu donner la macro?
Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlstart,
puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL et j'ai
écrasé le nouveau avec l'ancien bcp plus gros.
**** À la place d'écraser le nouveau fichier .xlsb, j'aurais fait un
copier-coller de toutes les macros de l'ancien fichier de macros
complémentaires vers le nouveau fichier .xlsb en prenant soin de
copier ces procédures dans les bons modules.
macro "prop" ****Je suppose que la macro "Prop" est dans un MODULE STANDARD
"Le message d'erreur est : "la méthode 'onaction de l'objet _ commandbarbutton a échoué" .on action = "prop" ****ce message d'erreur suggère que la méthode "OnAction" est utilisée sur un contrôle qui ne possède pas cette méthode
Quel est le type du contrôle auquel tu affectes cette action? Peux-tu donner la macro?
Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlstart, puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL et j'ai écrasé le nouveau avec l'ancien bcp plus gros.
**** À la place d'écraser le nouveau fichier .xlsb, j'aurais fait un copier-coller de toutes les macros de l'ancien fichier de macros complémentaires vers le nouveau fichier .xlsb en prenant soin de copier ces procédures dans les bons modules.
Patrick
Je viens de faire un nouveau fichier pour te l'envoyer et là, avant de le mettre sur dropbox, je remarque que ça fonctionne normalement !!!
Je pense que mon personnal est corrompu finalement, je vais donc en refaire un nouveau avec les modules de l'original et je te tiens au jus
Merci encore et dans tous les cas je reviens donner des news...
Patrick
Le 25-01-16 21:14, MichD a écrit :
macro "prop" ****Je suppose que la macro "Prop" est dans un MODULE STANDARD
"Le message d'erreur est : "la méthode 'onaction de l'objet _ commandbarbutton a échoué" .on action = "prop" ****ce message d'erreur suggère que la méthode "OnAction" est utilisée sur un contrôle qui ne possède pas cette méthode
Quel est le type du contrôle auquel tu affectes cette action? Peux-tu donner la macro?
> Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlstart,
puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL et j'ai écrasé le nouveau avec l'ancien bcp plus gros.
**** À la place d'écraser le nouveau fichier .xlsb, j'aurais fait un copier-coller de toutes les macros de l'ancien fichier de macros complémentaires vers le nouveau fichier .xlsb en prenant soin de copier ces procédures dans les bons modules.
Je viens de faire un nouveau fichier pour te l'envoyer et là, avant de
le mettre sur dropbox, je remarque que ça fonctionne normalement !!!
Je pense que mon personnal est corrompu finalement, je vais donc en
refaire un nouveau avec les modules de l'original et je te tiens au jus
Merci encore et dans tous les cas je reviens donner des news...
Patrick
Le 25-01-16 21:14, MichD a écrit :
macro "prop"
****Je suppose que la macro "Prop" est dans un MODULE STANDARD
"Le message d'erreur est : "la méthode 'onaction de l'objet _
commandbarbutton a échoué"
.on action = "prop"
****ce message d'erreur suggère que la méthode "OnAction" est
utilisée sur un contrôle qui ne possède pas cette méthode
Quel est le type du contrôle auquel tu affectes cette action?
Peux-tu donner la macro?
> Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlstart,
puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL et j'ai
écrasé le nouveau avec l'ancien bcp plus gros.
**** À la place d'écraser le nouveau fichier .xlsb, j'aurais fait un
copier-coller de toutes les macros de l'ancien fichier de macros
complémentaires vers le nouveau fichier .xlsb en prenant soin de
copier ces procédures dans les bons modules.
Je viens de faire un nouveau fichier pour te l'envoyer et là, avant de le mettre sur dropbox, je remarque que ça fonctionne normalement !!!
Je pense que mon personnal est corrompu finalement, je vais donc en refaire un nouveau avec les modules de l'original et je te tiens au jus
Merci encore et dans tous les cas je reviens donner des news...
Patrick
Le 25-01-16 21:14, MichD a écrit :
macro "prop" ****Je suppose que la macro "Prop" est dans un MODULE STANDARD
"Le message d'erreur est : "la méthode 'onaction de l'objet _ commandbarbutton a échoué" .on action = "prop" ****ce message d'erreur suggère que la méthode "OnAction" est utilisée sur un contrôle qui ne possède pas cette méthode
Quel est le type du contrôle auquel tu affectes cette action? Peux-tu donner la macro?
> Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlstart,
puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL et j'ai écrasé le nouveau avec l'ancien bcp plus gros.
**** À la place d'écraser le nouveau fichier .xlsb, j'aurais fait un copier-coller de toutes les macros de l'ancien fichier de macros complémentaires vers le nouveau fichier .xlsb en prenant soin de copier ces procédures dans les bons modules.
PatrIck
Voilà... c'est rentré dans l'ordre :) Merci encore à Denis
P.
Le lundi 25 janvier 2016 21:40:10 UTC+1, Patrick a écrit :
Je viens de faire un nouveau fichier pour te l'envoyer et là, avant de le mettre sur dropbox, je remarque que ça fonctionne normalement !!!
Je pense que mon personnal est corrompu finalement, je vais donc en refaire un nouveau avec les modules de l'original et je te tiens au jus
Merci encore et dans tous les cas je reviens donner des news...
Patrick
Le 25-01-16 21:14, MichD a écrit : > > > macro "prop" > ****Je suppose que la macro "Prop" est dans un MODULE STANDARD > > "Le message d'erreur est : "la méthode 'onaction de l'objet _ > commandbarbutton a échoué" > .on action = "prop" > ****ce message d'erreur suggère que la méthode "OnAction" est > utilisée sur un contrôle qui ne possède pas cette méthode > > Quel est le type du contrôle auquel tu affectes cette action? > Peux-tu donner la macro? > > > > Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlsta rt, >> puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL e t j'ai >> écrasé le nouveau avec l'ancien bcp plus gros. > > **** À la place d'écraser le nouveau fichier .xlsb, j'aurais fait u n > copier-coller de toutes les macros de l'ancien fichier de macros > complémentaires vers le nouveau fichier .xlsb en prenant soin d e > copier ces procédures dans les bons modules. > >
Voilà...
c'est rentré dans l'ordre :)
Merci encore à Denis
P.
Le lundi 25 janvier 2016 21:40:10 UTC+1, Patrick a écrit :
Je viens de faire un nouveau fichier pour te l'envoyer et là, avant de
le mettre sur dropbox, je remarque que ça fonctionne normalement !!!
Je pense que mon personnal est corrompu finalement, je vais donc en
refaire un nouveau avec les modules de l'original et je te tiens au jus
Merci encore et dans tous les cas je reviens donner des news...
Patrick
Le 25-01-16 21:14, MichD a écrit :
>
>
> macro "prop"
> ****Je suppose que la macro "Prop" est dans un MODULE STANDARD
>
> "Le message d'erreur est : "la méthode 'onaction de l'objet _
> commandbarbutton a échoué"
> .on action = "prop"
> ****ce message d'erreur suggère que la méthode "OnAction" est
> utilisée sur un contrôle qui ne possède pas cette méthode
>
> Quel est le type du contrôle auquel tu affectes cette action?
> Peux-tu donner la macro?
>
>
> > Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlsta rt,
>> puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL e t j'ai
>> écrasé le nouveau avec l'ancien bcp plus gros.
>
> **** À la place d'écraser le nouveau fichier .xlsb, j'aurais fait u n
> copier-coller de toutes les macros de l'ancien fichier de macros
> complémentaires vers le nouveau fichier .xlsb en prenant soin d e
> copier ces procédures dans les bons modules.
>
>
Voilà... c'est rentré dans l'ordre :) Merci encore à Denis
P.
Le lundi 25 janvier 2016 21:40:10 UTC+1, Patrick a écrit :
Je viens de faire un nouveau fichier pour te l'envoyer et là, avant de le mettre sur dropbox, je remarque que ça fonctionne normalement !!!
Je pense que mon personnal est corrompu finalement, je vais donc en refaire un nouveau avec les modules de l'original et je te tiens au jus
Merci encore et dans tous les cas je reviens donner des news...
Patrick
Le 25-01-16 21:14, MichD a écrit : > > > macro "prop" > ****Je suppose que la macro "Prop" est dans un MODULE STANDARD > > "Le message d'erreur est : "la méthode 'onaction de l'objet _ > commandbarbutton a échoué" > .on action = "prop" > ****ce message d'erreur suggère que la méthode "OnAction" est > utilisée sur un contrôle qui ne possède pas cette méthode > > Quel est le type du contrôle auquel tu affectes cette action? > Peux-tu donner la macro? > > > > Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlsta rt, >> puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL e t j'ai >> écrasé le nouveau avec l'ancien bcp plus gros. > > **** À la place d'écraser le nouveau fichier .xlsb, j'aurais fait u n > copier-coller de toutes les macros de l'ancien fichier de macros > complémentaires vers le nouveau fichier .xlsb en prenant soin d e > copier ces procédures dans les bons modules. > >
Patrick
re,
j'ai néanmoins une question: le code en question crée un menu que j'alimente sans soucis pour aller vers des codes que j'ai depuis longtemps; comment faire pour avoir un autre menu qui vient se coller à la droite de celui qui est là depuis des années. Pour l'instant, je ne sais pas faire autrement qu'un sous menu du menu principal... Je voudrais distinguer un autre menu que je dois faire pour placer sur un autre pc. J'ai bien essayé de mettre commandbars(2) la place de (1) ici mais ce n'est pas ça..
Set Ajout = CommandBars(1).Controls.Add(Type:=msoControlPopup, Temporary:=True)
Patrick (XL2007)
Le 27-01-16 10:49, PatrIck a écrit :
Voilà... c'est rentré dans l'ordre :) Merci encore à Denis
P.
Le lundi 25 janvier 2016 21:40:10 UTC+1, Patrick a écrit :
Je viens de faire un nouveau fichier pour te l'envoyer et là, avant de le mettre sur dropbox, je remarque que ça fonctionne normalement !!!
Je pense que mon personnal est corrompu finalement, je vais donc en refaire un nouveau avec les modules de l'original et je te tiens au jus
Merci encore et dans tous les cas je reviens donner des news...
Patrick
Le 25-01-16 21:14, MichD a écrit :
macro "prop" ****Je suppose que la macro "Prop" est dans un MODULE STANDARD
"Le message d'erreur est : "la méthode 'onaction de l'objet _ commandbarbutton a échoué" .on action = "prop" ****ce message d'erreur suggère que la méthode "OnAction" est utilisée sur un contrôle qui ne possède pas cette méthode
Quel est le type du contrôle auquel tu affectes cette action? Peux-tu donner la macro?
> Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlstart,
puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL et j'ai écrasé le nouveau avec l'ancien bcp plus gros.
**** À la place d'écraser le nouveau fichier .xlsb, j'aurais fait un copier-coller de toutes les macros de l'ancien fichier de macros complémentaires vers le nouveau fichier .xlsb en prenant soin de copier ces procédures dans les bons modules.
re,
j'ai néanmoins une question:
le code en question crée un menu que j'alimente sans soucis pour aller
vers des codes que j'ai depuis longtemps;
comment faire pour avoir un autre menu qui vient se coller à la droite
de celui qui est là depuis des années.
Pour l'instant, je ne sais pas faire autrement qu'un sous menu du menu
principal...
Je voudrais distinguer un autre menu que je dois faire pour placer sur
un autre pc.
J'ai bien essayé de mettre commandbars(2) la place de (1) ici mais ce
n'est pas ça..
Set Ajout = CommandBars(1).Controls.Add(Type:=msoControlPopup,
Temporary:=True)
Patrick (XL2007)
Le 27-01-16 10:49, PatrIck a écrit :
Voilà...
c'est rentré dans l'ordre :)
Merci encore à Denis
P.
Le lundi 25 janvier 2016 21:40:10 UTC+1, Patrick a écrit :
Je viens de faire un nouveau fichier pour te l'envoyer et là, avant de
le mettre sur dropbox, je remarque que ça fonctionne normalement !!!
Je pense que mon personnal est corrompu finalement, je vais donc en
refaire un nouveau avec les modules de l'original et je te tiens au jus
Merci encore et dans tous les cas je reviens donner des news...
Patrick
Le 25-01-16 21:14, MichD a écrit :
macro "prop"
****Je suppose que la macro "Prop" est dans un MODULE STANDARD
"Le message d'erreur est : "la méthode 'onaction de l'objet _
commandbarbutton a échoué"
.on action = "prop"
****ce message d'erreur suggère que la méthode "OnAction" est
utilisée sur un contrôle qui ne possède pas cette méthode
Quel est le type du contrôle auquel tu affectes cette action?
Peux-tu donner la macro?
> Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlstart,
puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL et j'ai
écrasé le nouveau avec l'ancien bcp plus gros.
**** À la place d'écraser le nouveau fichier .xlsb, j'aurais fait un
copier-coller de toutes les macros de l'ancien fichier de macros
complémentaires vers le nouveau fichier .xlsb en prenant soin de
copier ces procédures dans les bons modules.
j'ai néanmoins une question: le code en question crée un menu que j'alimente sans soucis pour aller vers des codes que j'ai depuis longtemps; comment faire pour avoir un autre menu qui vient se coller à la droite de celui qui est là depuis des années. Pour l'instant, je ne sais pas faire autrement qu'un sous menu du menu principal... Je voudrais distinguer un autre menu que je dois faire pour placer sur un autre pc. J'ai bien essayé de mettre commandbars(2) la place de (1) ici mais ce n'est pas ça..
Set Ajout = CommandBars(1).Controls.Add(Type:=msoControlPopup, Temporary:=True)
Patrick (XL2007)
Le 27-01-16 10:49, PatrIck a écrit :
Voilà... c'est rentré dans l'ordre :) Merci encore à Denis
P.
Le lundi 25 janvier 2016 21:40:10 UTC+1, Patrick a écrit :
Je viens de faire un nouveau fichier pour te l'envoyer et là, avant de le mettre sur dropbox, je remarque que ça fonctionne normalement !!!
Je pense que mon personnal est corrompu finalement, je vais donc en refaire un nouveau avec les modules de l'original et je te tiens au jus
Merci encore et dans tous les cas je reviens donner des news...
Patrick
Le 25-01-16 21:14, MichD a écrit :
macro "prop" ****Je suppose que la macro "Prop" est dans un MODULE STANDARD
"Le message d'erreur est : "la méthode 'onaction de l'objet _ commandbarbutton a échoué" .on action = "prop" ****ce message d'erreur suggère que la méthode "OnAction" est utilisée sur un contrôle qui ne possède pas cette méthode
Quel est le type du contrôle auquel tu affectes cette action? Peux-tu donner la macro?
> Pour le personnal.xlsb, ce que j'ai fais, c'est le retirer de xlstart,
puis j'ai ouvert XL et j'en ai recréé un et puis j'ai fermé XL et j'ai écrasé le nouveau avec l'ancien bcp plus gros.
**** À la place d'écraser le nouveau fichier .xlsb, j'aurais fait un copier-coller de toutes les macros de l'ancien fichier de macros complémentaires vers le nouveau fichier .xlsb en prenant soin de copier ces procédures dans les bons modules.
MichD
Bonjour,
Un exemple de code basé sur un menu d'une version Excel d'avant 2007.
Si ce menu apparaît dans l'item Complément d'une version 2007 à aujourd'hui, la première ligne de commande doit être adaptée. Remplace le 1 par le nom que tu as donnée à ta barre de menu. Set X = Application.CommandBars(1)
'----------------------------------------- Sub test()
Dim X As CommandBar Dim Menu As CommandBarControl Dim SousMenu As CommandBarControl
Set X = Application.CommandBars(1) 'Son nom "Worksheet Menu Bar" X.Visible =True
'Création du menu dans la barre de menu 'Before:=9 9 est l'index de l'item précédent où le nouveau menu 'se créera. Si tu n'utilises pas le paramêtre "Before", le nouveau 'menu s'ajoute à l'extrême droite sur la barre des menus With X Set Menu = .Controls.Add(Type:=msoControlPopup, Temporary:=True, before:=9) With Menu .Caption = "Patrick" .Visible = True End With End With
'Création des sous-menus, With Menu With .Controls.Add(Type:=msoControlButton) .Caption = "Toto" .OnAction = "MaMacro" .FaceId = 3 'L'image du contrôle End With With .Controls.Add(Type:=msoControlButton) .Caption = "titi" .OnAction = "MaMacro1" .FaceId = 10 End With End With
End Sub '-----------------------------------------
Bonjour,
Un exemple de code basé sur un menu d'une version
Excel d'avant 2007.
Si ce menu apparaît dans l'item Complément d'une version
2007 à aujourd'hui, la première ligne de commande doit être
adaptée. Remplace le 1 par le nom que tu as donnée à ta barre
de menu.
Set X = Application.CommandBars(1)
'-----------------------------------------
Sub test()
Dim X As CommandBar
Dim Menu As CommandBarControl
Dim SousMenu As CommandBarControl
Set X = Application.CommandBars(1) 'Son nom "Worksheet Menu Bar"
X.Visible =True
'Création du menu dans la barre de menu
'Before:=9 9 est l'index de l'item précédent où le nouveau menu
'se créera. Si tu n'utilises pas le paramêtre "Before", le nouveau
'menu s'ajoute à l'extrême droite sur la barre des menus
With X
Set Menu = .Controls.Add(Type:=msoControlPopup, Temporary:=True,
before:=9)
With Menu
.Caption = "Patrick"
.Visible = True
End With
End With
'Création des sous-menus,
With Menu
With .Controls.Add(Type:=msoControlButton)
.Caption = "Toto"
.OnAction = "MaMacro"
.FaceId = 3 'L'image du contrôle
End With
With .Controls.Add(Type:=msoControlButton)
.Caption = "titi"
.OnAction = "MaMacro1"
.FaceId = 10
End With
End With
End Sub
'-----------------------------------------
Un exemple de code basé sur un menu d'une version Excel d'avant 2007.
Si ce menu apparaît dans l'item Complément d'une version 2007 à aujourd'hui, la première ligne de commande doit être adaptée. Remplace le 1 par le nom que tu as donnée à ta barre de menu. Set X = Application.CommandBars(1)
'----------------------------------------- Sub test()
Dim X As CommandBar Dim Menu As CommandBarControl Dim SousMenu As CommandBarControl
Set X = Application.CommandBars(1) 'Son nom "Worksheet Menu Bar" X.Visible =True
'Création du menu dans la barre de menu 'Before:=9 9 est l'index de l'item précédent où le nouveau menu 'se créera. Si tu n'utilises pas le paramêtre "Before", le nouveau 'menu s'ajoute à l'extrême droite sur la barre des menus With X Set Menu = .Controls.Add(Type:=msoControlPopup, Temporary:=True, before:=9) With Menu .Caption = "Patrick" .Visible = True End With End With
'Création des sous-menus, With Menu With .Controls.Add(Type:=msoControlButton) .Caption = "Toto" .OnAction = "MaMacro" .FaceId = 3 'L'image du contrôle End With With .Controls.Add(Type:=msoControlButton) .Caption = "titi" .OnAction = "MaMacro1" .FaceId = 10 End With End With
End Sub '-----------------------------------------
j'ai à présent (avant de tout effacer bien sur avec deletenouveaumenu) un menu sous l'autre, et pas à à droite
Mon menu est à cette place mais je voudrais en faire un provisoire qui se mettrais à la droite de celui là , donc à droite de "Commandes de menu" visible sur l'image
Est ce possible sans passer par CustomUiEditor comme indique ici ?
Un exemple de code basé sur un menu d'une version Excel d'avant 2007.
Si ce menu apparaît dans l'item Complément d'une version 2007 à aujourd'hui, la première ligne de commande doit être adaptée. Remplace le 1 par le nom que tu as donnée à ta barre de menu. Set X = Application.CommandBars(1)
'----------------------------------------- Sub test()
Dim X As CommandBar Dim Menu As CommandBarControl Dim SousMenu As CommandBarControl
Set X = Application.CommandBars(1) 'Son nom "Worksheet Menu Bar" X.Visible =True
'Création du menu dans la barre de menu 'Before:=9 9 est l'index de l'item précédent où le nouveau menu 'se créera. Si tu n'utilises pas le paramêtre "Before", le nouveau 'menu s'ajoute à l'extrême droite sur la barre des menus With X Set Menu = .Controls.Add(Type:=msoControlPopup, Temporary:=True, before:=9) With Menu .Caption = "Patrick" .Visible = True End With End With
'Création des sous-menus, With Menu With .Controls.Add(Type:=msoControlButton) .Caption = "Toto" .OnAction = "MaMacro" .FaceId = 3 'L'image du contrôle End With With .Controls.Add(Type:=msoControlButton) .Caption = "titi" .OnAction = "MaMacro1" .FaceId = 10 End With End With
End Sub '-----------------------------------------
Ok, mais ça c'est que j'obtenais aussi :)
http://www.cjoint.com/c/FABlKVbhDCH
j'ai à présent (avant de tout effacer bien sur avec deletenouveaumenu)
un menu sous l'autre, et pas à à droite
Mon menu est à cette place mais je voudrais en faire un provisoire qui
se mettrais à la droite de celui là , donc à droite de "Commandes de
menu" visible sur l'image
Est ce possible sans passer par CustomUiEditor comme indique ici ?
http://ericrenaud.fr/Ribbon.htm#personnalisation
Le 27-01-16 12:10, MichD a écrit :
Bonjour,
Un exemple de code basé sur un menu d'une version
Excel d'avant 2007.
Si ce menu apparaît dans l'item Complément d'une version
2007 à aujourd'hui, la première ligne de commande doit être
adaptée. Remplace le 1 par le nom que tu as donnée à ta barre
de menu.
Set X = Application.CommandBars(1)
'-----------------------------------------
Sub test()
Dim X As CommandBar
Dim Menu As CommandBarControl
Dim SousMenu As CommandBarControl
Set X = Application.CommandBars(1) 'Son nom "Worksheet Menu Bar"
X.Visible =True
'Création du menu dans la barre de menu
'Before:=9 9 est l'index de l'item précédent où le nouveau menu
'se créera. Si tu n'utilises pas le paramêtre "Before", le nouveau
'menu s'ajoute à l'extrême droite sur la barre des menus
With X
Set Menu = .Controls.Add(Type:=msoControlPopup, Temporary:=True,
before:=9)
With Menu
.Caption = "Patrick"
.Visible = True
End With
End With
'Création des sous-menus,
With Menu
With .Controls.Add(Type:=msoControlButton)
.Caption = "Toto"
.OnAction = "MaMacro"
.FaceId = 3 'L'image du contrôle
End With
With .Controls.Add(Type:=msoControlButton)
.Caption = "titi"
.OnAction = "MaMacro1"
.FaceId = 10
End With
End With
End Sub
'-----------------------------------------
j'ai à présent (avant de tout effacer bien sur avec deletenouveaumenu) un menu sous l'autre, et pas à à droite
Mon menu est à cette place mais je voudrais en faire un provisoire qui se mettrais à la droite de celui là , donc à droite de "Commandes de menu" visible sur l'image
Est ce possible sans passer par CustomUiEditor comme indique ici ?
Un exemple de code basé sur un menu d'une version Excel d'avant 2007.
Si ce menu apparaît dans l'item Complément d'une version 2007 à aujourd'hui, la première ligne de commande doit être adaptée. Remplace le 1 par le nom que tu as donnée à ta barre de menu. Set X = Application.CommandBars(1)
'----------------------------------------- Sub test()
Dim X As CommandBar Dim Menu As CommandBarControl Dim SousMenu As CommandBarControl
Set X = Application.CommandBars(1) 'Son nom "Worksheet Menu Bar" X.Visible =True
'Création du menu dans la barre de menu 'Before:=9 9 est l'index de l'item précédent où le nouveau menu 'se créera. Si tu n'utilises pas le paramêtre "Before", le nouveau 'menu s'ajoute à l'extrême droite sur la barre des menus With X Set Menu = .Controls.Add(Type:=msoControlPopup, Temporary:=True, before:=9) With Menu .Caption = "Patrick" .Visible = True End With End With
'Création des sous-menus, With Menu With .Controls.Add(Type:=msoControlButton) .Caption = "Toto" .OnAction = "MaMacro" .FaceId = 3 'L'image du contrôle End With With .Controls.Add(Type:=msoControlButton) .Caption = "titi" .OnAction = "MaMacro1" .FaceId = 10 End With End With
End Sub '-----------------------------------------
MichD
OK! tu fais référence au ruban.
Désolé pour toi mais je ne réponds pas à ce type de question. La seule réponse que je donne, c'est l'adresse du site de Ron de Bruin. Ce site est relativement complet sur le sujet mais cela demande un certain temps pour comprendre et assimiler ces explications...
Désolé pour toi mais je ne réponds pas à ce type de question.
La seule réponse que je donne, c'est l'adresse du site de
Ron de Bruin. Ce site est relativement complet sur le sujet
mais cela demande un certain temps pour comprendre et assimiler
ces explications...
Désolé pour toi mais je ne réponds pas à ce type de question. La seule réponse que je donne, c'est l'adresse du site de Ron de Bruin. Ce site est relativement complet sur le sujet mais cela demande un certain temps pour comprendre et assimiler ces explications...
Je pensais qu'avec la méthode "classique" telle que tu la donnes et que j'avais, on pouvait y arriver en modifiant un peu. Je vais m'arranger autrement parce que assimiler ça en +...déjà que je maitrise si peu le VBA :)
Merci de ton aide
Patrick
Le 27-01-16 13:55, MichD a écrit :
OK! tu fais référence au ruban.
Désolé pour toi mais je ne réponds pas à ce type de question. La seule réponse que je donne, c'est l'adresse du site de Ron de Bruin. Ce site est relativement complet sur le sujet mais cela demande un certain temps pour comprendre et assimiler ces explications...
Je pensais qu'avec la méthode "classique" telle que tu la donnes et que
j'avais, on pouvait y arriver en modifiant un peu.
Je vais m'arranger autrement parce que assimiler ça en +...déjà que je
maitrise si peu le VBA :)
Merci de ton aide
Patrick
Le 27-01-16 13:55, MichD a écrit :
OK! tu fais référence au ruban.
Désolé pour toi mais je ne réponds pas à ce type de question.
La seule réponse que je donne, c'est l'adresse du site de
Ron de Bruin. Ce site est relativement complet sur le sujet
mais cela demande un certain temps pour comprendre et assimiler
ces explications...
Je pensais qu'avec la méthode "classique" telle que tu la donnes et que j'avais, on pouvait y arriver en modifiant un peu. Je vais m'arranger autrement parce que assimiler ça en +...déjà que je maitrise si peu le VBA :)
Merci de ton aide
Patrick
Le 27-01-16 13:55, MichD a écrit :
OK! tu fais référence au ruban.
Désolé pour toi mais je ne réponds pas à ce type de question. La seule réponse que je donne, c'est l'adresse du site de Ron de Bruin. Ce site est relativement complet sur le sujet mais cela demande un certain temps pour comprendre et assimiler ces explications...