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

maîtriser la gestion d'un bouton en VBA

5 réponses
Avatar
Ben
Salut !!

Mon pbe est tr=E8s simple. Je veux juste pouvoir cr=E9er un
bouton, en changer le nom et le caption. Je veux aussi
pouvoir le formatter =E0 ma guise et pouvoir le rendre inactif.
Et tout =E7a, qu'avec du code.

Merci d'avance.

5 réponses

Avatar
AV
Tu as déjà posé la question....ainsi que d'autres.... et les retours sont
quasi-inexistants ...

AV
Avatar
JF
Voilà un peu de code pour te mettre en appétit!


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

Sub test()
AjouterBouton "Standard", "Test", "SubX", 5
End Sub

Sub subX()
MsgBox "SubX"
End Sub

-----Message d'origine-----
Salut !!

Mon pbe est très simple. Je veux juste pouvoir créer un
bouton, en changer le nom et le caption. Je veux aussi
pouvoir le formatter à ma guise et pouvoir le rendre
inactif.

Et tout ça, qu'avec du code.

Merci d'avance.

.



Avatar
Ben
dsl de ne pas avoir donné de retour mais je peux te dire
qu'il y a pas mal de choses qui m'ont bien servi.
En ce qui concerne les boutons, je ne suis pas encore
parvenu à maîtriser la bête mais avec le code que je viens
de recevoir, je vais m'en sortir.
Merci quand même de me faire la remarque.
A+
Ben

-----Message d'origine-----
Tu as déjà posé la question....ainsi que d'autres.... et
les retours sont

quasi-inexistants ...

AV


.



Avatar
Ben
Merci JF pour ce code. Mais pourrais-je avoir quelques
précisions STP. Je voudrais savoir quel est le rôle de la
variable "sMenu" et à quoi correspond la variable "iAv".
Merci d'avance.
ben

-----Message d'origine-----
Voilà un peu de code pour te mettre en appétit!


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

Sub test()
AjouterBouton "Standard", "Test", "SubX", 5
End Sub

Sub subX()
MsgBox "SubX"
End Sub

-----Message d'origine-----
Salut !!

Mon pbe est très simple. Je veux juste pouvoir créer un
bouton, en changer le nom et le caption. Je veux aussi
pouvoir le formatter à ma guise et pouvoir le rendre
inactif.

Et tout ça, qu'avec du code.

Merci d'avance.

.

.





Avatar
1) sMenu : Chaque barre de menus (ou barre de boutons) a
son nom... pour les boutons il y a la "Standard" et bien
d'autres. Voici du code pour afficher le nom des barres
de menu et boutons dans Excel (ou dans Word ...)

Sub ListerBars()
Dim ctrl As CommandBar
For Each ctrl In Application.CommandBars()
Debug.Print ctrl.Name
Next
End Sub

2) iAv est un entier indiquant la position de ton bouton
1 : premier bouton à gauche
6 : 6ième bouton à partir de la gauche (Dans la barre
choisie)

-----Message d'origine-----
Merci JF pour ce code. Mais pourrais-je avoir quelques
précisions STP. Je voudrais savoir quel est le rôle de la
variable "sMenu" et à quoi correspond la variable "iAv".
Merci d'avance.
ben

-----Message d'origine-----
Voilà un peu de code pour te mettre en appétit!


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

Sub test()
AjouterBouton "Standard", "Test", "SubX", 5
End Sub

Sub subX()
MsgBox "SubX"
End Sub

-----Message d'origine-----
Salut !!

Mon pbe est très simple. Je veux juste pouvoir créer un
bouton, en changer le nom et le caption. Je veux aussi
pouvoir le formatter à ma guise et pouvoir le rendre
inactif.

Et tout ça, qu'avec du code.

Merci d'avance.

.

.


.