Bonjour à tous,
J'ai installé quelques CommandButton sur un UserForm.
Est-il possible d'afficher à gauche (avant le libellé) un FaceId ?
Merci de vos réponses.
Fabian
Version imprimable
Bonjour à tous,
J'ai installé quelques CommandButton sur un UserForm.
Est-il possible d'afficher à gauche (avant le libellé) un FaceId ?
Merci de vos réponses.
Fabian
Salut, voir dans la FAQ et adapter à ton contexte. Il y a les propriétés Picture et PicturePosition des boutons concernés.
A voir : VBA EXCEL Les FaceID sinon rechercher
Oui je sais.
Pour les faceid, je les utilises souvent dans des menus contextuels.
Cependant, je n'ai rien trouvé qui permettent de les ajouter à un commandbutton.
Fabian
Salut, l'exemple donné dans la FAQ ( voir lien plus haut ) devrait être suffisant, en l'adaptant à ton contexte, via les propriétés Picture et PicturePosition des boutons concernés.
Code:
1
2CommandButton1.Picture = Cmb.Picture CommandButton1.PicturePosition = fmPicturePositionLeftCenter
Merci pour l'explication.
J'ai donc un userform intitulé "Informations" avec un bouton CommandButton1
Cependant, j'ai une erreur d'exécution 424 "Objet Requis"
Voici le code complet. Merci de vos explications afin de comprendre ce qui fait défaut. Fabian.
Private Sub Informations_Initialize()
Informations.Show
Dim Cmb As CommandBarControl
Dim cBar As CommandBar
Set cBar = CommandBars.Add(Position:=msoBarFloating, MenuBar:=False, Temporary:=True)
Set Cmb = cBar.Controls.Add(Type:=msoControlButton, Temporary:=True)
'964 = point d'exclamation
Cmb.FaceId = 964
CommandButton1.Picture = Cmb.Picture
CommandButton1.PicturePosition = fmPicturePositionLeftCenter
cBar.Delete
End Sub
Salut, Balise ton code stp
à lire et assimiler, avant de vouloir aller plus loin : Utiliser les UserForm en VBA Excel
code de l'userform Informations
code dans un module standardCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Option Explicit Private Sub UserForm_Initialize() Dim Cmb As CommandBarControl Dim cBar As CommandBar Set cBar = CommandBars.Add(Position:=msoBarFloating, MenuBar:=False, Temporary:=True) Set Cmb = cBar.Controls.Add(Type:=msoControlButton, Temporary:=True) Cmb.FaceId = 23 CommandButton1.Picture = Cmb.Picture CommandButton1.PicturePosition = fmPicturePositionLeftCenter cBar.Delete End Sub
Code:
1
2
3
4
5 Option Explicit Sub tst() Informations.Show End Sub
OK merci beaucoup.
Je vais essayer.
Par contre comme je suis nouveau, je ne sais pas comment faire pour baliser.
Je regarde dans la faq.
Merci. Fabian.
Un grand merci à kiki29
Ca marche super !
Fabian
Salut,tu cliques sur Balise ton code stp : une animation explicite t'indiquera la démarche à suivre.Citation:
Par contre comme je suis nouveau, je ne sais pas comment faire pour baliser.
Bonjour à tous,
Je suis tombé sur ce topic qui m'a beaucoup aidé. Merci beaucoup ! :D
Du coup j'ai créé une routine (basée sur la réponse de Kiki29), pour simplifier la configuration des boutons lors de l'initialisation des formulaires. Il suffit d'appeler la routine et de passer en paramètre le contrôle et le FaceID désiré.
Je vous joins également un classeur ( Pièce jointe 498737 ) que je me suis créé qui permet de faire défiler les FaceID pour voir leur rendu exact (les listes trouvables sur internet n'étant plus toujours à jour). En cliquant sur un bouton, vous récupérez le FaceID en haut à droite.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Sub SetFaceID(pCtrl As MSForms.CommandButton, pFaceID As Long) Dim CmB As CommandBar, _ Button As CommandBarButton Set CmB = CommandBars.Add(Position:=msoBarFloating, MenuBar:=False, Temporary:=True) Set Button = CmB.Controls.Add(Type:=msoControlButton, Temporary:=True) With Button .FaceId = pFaceID pCtrl.Picture = .Picture End With CmB.Delete End Sub