Merci beaucoup pour ton code sur le bouton :
------------------------------------------------------
Sub AjouterBouton(ByVal sMenu As String, ByVal sCaption As
String, ByVal sAction As String, iAv As Integer)
Dim ctrlComms As CommandBarControls
Dim ctrlComm As CommandBarControl
Dim ctrlAbsent As Boolean
Set ctrlComms =3D Application.CommandBars(sMenu).Controls
ctrlAbsent =3D True
For Each ctrlComm In ctrlComms
If ctrlComm.Caption =3D sCaption Then
ctrlAbsent =3D False
Exit For
End If
Next
If Not ctrlAbsent Then ctrlComm.Delete
Set ctrlComm =3D ctrlComms.Add(Type:=3DmsoControlButton, ID:=3D4,
Temporary:=3DTrue, Before:=3DiAv)
'Le id est pour le dessin du bouton
ctrlComm.Caption =3D sCaption
ctrlComm.OnAction =3D sAction
'ctrlComm.Enabled =3D False
End Sub
--------------------------------------------------
Pourrais tu m'expliquer un peu le code :=20
juste =E0 quel est le role de chaque variable?=20
comment positionner =E0 sa guise le bouton et o=F9?
Voil=E0. Je ne reviens pas avant mercredi alors tu as le
temps de me r=E9pondre. Merci.
A+
Ben
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Hervé
Salut Ben, Commentaires dans le code :
Sub AjouterBouton(ByVal sMenu As String, _ ByVal sCaption As String, _ ByVal sAction As String, _ iAv As Integer) '"sMenu" nom de la barre '"sCaption" nom du bouton recherché et créé '"sAction" macro à exécuter sur clic du bouton '"iAv" position du bouton sur la barre '"iAv" correspond à l'index du bouton qui suit ' celui créé si pas précisé le bouton est créé 'en dernière position
Dim ctrlComms As CommandBarControls 'jeu d'objet Contrôle Dim ctrlComm As CommandBarControl 'objet contrôle Dim ctrlAbsent As Boolean
'sMenu est la barre passeé en argument, celle 'sur laquelle tu veux travailler Set ctrlComms = Application.CommandBars(sMenu).Controls 'contrôle si le bouton recherché (sCaption)est présent et 'modifie la variable ctrlAbsent en conséquence ctrlAbsent = True For Each ctrlComm In ctrlComms If ctrlComm.Caption = sCaption Then ctrlAbsent = False Exit For End If Next 'si le bouton existe, le supprime pour le 're-créer. cette façon est utilisée si on veux 'affecter une autre macro au bouton dans le cas 'contraire c'est inutile 'la position du contrôle dans la barre est fonction de 'iAv passée en paramètre If Not ctrlAbsent Then ctrlComm.Delete Set ctrlComm = ctrlComms.Add(Type:=msoControlButton, ID:=4, _ Temporary:=True, Before:=iAv) 'Le id est pour le dessin du bouton '"BeginGroup" si tu veux le séparer par un trait 'des autres boutons ''''''ctrlComm.BeginGroup = True ctrlComm.Caption = sCaption ctrlComm.OnAction = sAction 'ctrlComm.Enabled = False End Sub
Hervé.
"Ben" a écrit dans le message news: 59cd01c4811c$6a92a7c0$ Merci beaucoup pour ton code sur le bouton : ------------------------------------------------------ Sub AjouterBouton(ByVal sMenu As String, ByVal sCaption As String, ByVal sAction As String, iAv As Integer) Dim ctrlComms As CommandBarControls Dim ctrlComm As CommandBarControl Dim ctrlAbsent As Boolean
Set ctrlComms = Application.CommandBars(sMenu).Controls
ctrlAbsent = True For Each ctrlComm In ctrlComms If ctrlComm.Caption = sCaption Then ctrlAbsent = False Exit For End If Next If Not ctrlAbsent Then ctrlComm.Delete Set ctrlComm = ctrlComms.Add(Type:=msoControlButton, ID:=4, Temporary:=True, Before:=iAv) 'Le id est pour le dessin du bouton ctrlComm.Caption = sCaption ctrlComm.OnAction = sAction 'ctrlComm.Enabled = False End Sub -------------------------------------------------- Pourrais tu m'expliquer un peu le code : juste à quel est le role de chaque variable? comment positionner à sa guise le bouton et où?
Voilà. Je ne reviens pas avant mercredi alors tu as le temps de me répondre. Merci. A+ Ben
Salut Ben,
Commentaires dans le code :
Sub AjouterBouton(ByVal sMenu As String, _
ByVal sCaption As String, _
ByVal sAction As String, _
iAv As Integer)
'"sMenu" nom de la barre
'"sCaption" nom du bouton recherché et créé
'"sAction" macro à exécuter sur clic du bouton
'"iAv" position du bouton sur la barre
'"iAv" correspond à l'index du bouton qui suit
' celui créé si pas précisé le bouton est créé
'en dernière position
Dim ctrlComms As CommandBarControls 'jeu d'objet Contrôle
Dim ctrlComm As CommandBarControl 'objet contrôle
Dim ctrlAbsent As Boolean
'sMenu est la barre passeé en argument, celle
'sur laquelle tu veux travailler
Set ctrlComms = Application.CommandBars(sMenu).Controls
'contrôle si le bouton recherché (sCaption)est présent et
'modifie la variable ctrlAbsent en conséquence
ctrlAbsent = True
For Each ctrlComm In ctrlComms
If ctrlComm.Caption = sCaption Then
ctrlAbsent = False
Exit For
End If
Next
'si le bouton existe, le supprime pour le
're-créer. cette façon est utilisée si on veux
'affecter une autre macro au bouton dans le cas
'contraire c'est inutile
'la position du contrôle dans la barre est fonction de
'iAv passée en paramètre
If Not ctrlAbsent Then ctrlComm.Delete
Set ctrlComm = ctrlComms.Add(Type:=msoControlButton, ID:=4, _
Temporary:=True, Before:=iAv)
'Le id est pour le dessin du bouton
'"BeginGroup" si tu veux le séparer par un trait
'des autres boutons
''''''ctrlComm.BeginGroup = True
ctrlComm.Caption = sCaption
ctrlComm.OnAction = sAction
'ctrlComm.Enabled = False
End Sub
Hervé.
"Ben" <anonymous@discussions.microsoft.com> a écrit dans le message news:
59cd01c4811c$6a92a7c0$a601280a@phx.gbl...
Merci beaucoup pour ton code sur le bouton :
------------------------------------------------------
Sub AjouterBouton(ByVal sMenu As String, ByVal sCaption As
String, ByVal sAction As String, iAv As Integer)
Dim ctrlComms As CommandBarControls
Dim ctrlComm As CommandBarControl
Dim ctrlAbsent As Boolean
Set ctrlComms = Application.CommandBars(sMenu).Controls
ctrlAbsent = True
For Each ctrlComm In ctrlComms
If ctrlComm.Caption = sCaption Then
ctrlAbsent = False
Exit For
End If
Next
If Not ctrlAbsent Then ctrlComm.Delete
Set ctrlComm = ctrlComms.Add(Type:=msoControlButton, ID:=4,
Temporary:=True, Before:=iAv)
'Le id est pour le dessin du bouton
ctrlComm.Caption = sCaption
ctrlComm.OnAction = sAction
'ctrlComm.Enabled = False
End Sub
--------------------------------------------------
Pourrais tu m'expliquer un peu le code :
juste à quel est le role de chaque variable?
comment positionner à sa guise le bouton et où?
Voilà. Je ne reviens pas avant mercredi alors tu as le
temps de me répondre. Merci.
A+
Ben
Sub AjouterBouton(ByVal sMenu As String, _ ByVal sCaption As String, _ ByVal sAction As String, _ iAv As Integer) '"sMenu" nom de la barre '"sCaption" nom du bouton recherché et créé '"sAction" macro à exécuter sur clic du bouton '"iAv" position du bouton sur la barre '"iAv" correspond à l'index du bouton qui suit ' celui créé si pas précisé le bouton est créé 'en dernière position
Dim ctrlComms As CommandBarControls 'jeu d'objet Contrôle Dim ctrlComm As CommandBarControl 'objet contrôle Dim ctrlAbsent As Boolean
'sMenu est la barre passeé en argument, celle 'sur laquelle tu veux travailler Set ctrlComms = Application.CommandBars(sMenu).Controls 'contrôle si le bouton recherché (sCaption)est présent et 'modifie la variable ctrlAbsent en conséquence ctrlAbsent = True For Each ctrlComm In ctrlComms If ctrlComm.Caption = sCaption Then ctrlAbsent = False Exit For End If Next 'si le bouton existe, le supprime pour le 're-créer. cette façon est utilisée si on veux 'affecter une autre macro au bouton dans le cas 'contraire c'est inutile 'la position du contrôle dans la barre est fonction de 'iAv passée en paramètre If Not ctrlAbsent Then ctrlComm.Delete Set ctrlComm = ctrlComms.Add(Type:=msoControlButton, ID:=4, _ Temporary:=True, Before:=iAv) 'Le id est pour le dessin du bouton '"BeginGroup" si tu veux le séparer par un trait 'des autres boutons ''''''ctrlComm.BeginGroup = True ctrlComm.Caption = sCaption ctrlComm.OnAction = sAction 'ctrlComm.Enabled = False End Sub
Hervé.
"Ben" a écrit dans le message news: 59cd01c4811c$6a92a7c0$ Merci beaucoup pour ton code sur le bouton : ------------------------------------------------------ Sub AjouterBouton(ByVal sMenu As String, ByVal sCaption As String, ByVal sAction As String, iAv As Integer) Dim ctrlComms As CommandBarControls Dim ctrlComm As CommandBarControl Dim ctrlAbsent As Boolean
Set ctrlComms = Application.CommandBars(sMenu).Controls
ctrlAbsent = True For Each ctrlComm In ctrlComms If ctrlComm.Caption = sCaption Then ctrlAbsent = False Exit For End If Next If Not ctrlAbsent Then ctrlComm.Delete Set ctrlComm = ctrlComms.Add(Type:=msoControlButton, ID:=4, Temporary:=True, Before:=iAv) 'Le id est pour le dessin du bouton ctrlComm.Caption = sCaption ctrlComm.OnAction = sAction 'ctrlComm.Enabled = False End Sub -------------------------------------------------- Pourrais tu m'expliquer un peu le code : juste à quel est le role de chaque variable? comment positionner à sa guise le bouton et où?
Voilà. Je ne reviens pas avant mercredi alors tu as le temps de me répondre. Merci. A+ Ben