OVH Cloud OVH Cloud

Petite interrogation à JF

1 réponse
Avatar
Ben
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

1 réponse

Avatar
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