XL 2010 Bouton d'option

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

cathodique

XLDnaute Barbatruc
Bonjour,

Comment créer un bouton d'option dans la frame1 à l'ouverture du formulaire
et pouvoir personnaliser ses options par code (en particulier la couleur de la Font).

Avec mes remerciements anticipés
 

Pièces jointes

Solution
Bonjour cathodique,

Le code de l'UserForm :
VB:
Private Sub UserForm_Initialize()
With Frame1.Controls.Add("Forms.OptionButton.1", "OB1")
    .Top = 10
    .Left = 10
    .Caption = "Choix1"
    .ForeColor = vbRed
End With
End Sub
A+
Bonjour cathodique,

Le code de l'UserForm :
VB:
Private Sub UserForm_Initialize()
With Frame1.Controls.Add("Forms.OptionButton.1", "OB1")
    .Top = 10
    .Left = 10
    .Caption = "Choix1"
    .ForeColor = vbRed
End With
End Sub
A+
Bonjour @job75 ,

C'est impeccable. tu me rends un sacré service. J'étais bloqué surtout pour le ForeColor.

Encore merci. Grâce à toi, je peux avancer.

Bon week-end.
 
Dernière édition:
Compléments avec un Module de classe :
VB:
Dim OB(1) As New Classe1 '1 => nombre d'OptionButtons - 1 (base 0)

Private Sub UserForm_Initialize()
Dim n As Byte, c As Control
For n = 0 To UBound(OB)
    Set c = Frame1.Controls.Add("Forms.OptionButton.1", "OB" & n + 1)
    c.Top = 8 + 18 * n
    c.Left = 10
    c.Caption = "Choix" & n + 1
    c.ForeColor = IIf(n, vbBlue, vbRed)
    Set OB(n).OB = c
Next n
End Sub
VB:
Public WithEvents OB As MSForms.OptionButton

Private Sub OB_Change()
If OB Then MsgBox IIf(OB.Name = "OB1", "Bonjour", "Bonsoir")
End Sub
 

Pièces jointes

Dernière édition:
bonjour
juste en passant
on peut tout faire dans le userform si on veut
exemple 4 couleurs
VB:
Option Explicit
Dim cls() As New UserForm1 '1 => nombre d'OptionButtons - 1 (base 0)
Public WithEvents OB As MSForms.OptionButton

Private Sub OB_Change()
If OB Then MsgBox OB.Caption
End Sub

Private Sub UserForm_Activate()
Dim n As Byte, c As Control
Dim CaptionX, couleurX
CaptionX = Array("bleu", "rouge", "vert", "jaune")
couleurX = Array(vbBlue, vbRed, vbGreen, vbYellow)
For n = 0 To UBound(CaptionX)
    Set c = Frame1.Controls.Add("Forms.OptionButton.1", "OB" & n + 1)
    c.Top = 8 + 18 * n
    c.Left = 10
    c.Caption = CaptionX(n)
    c.ForeColor = couleurX(n)
    ReDim Preserve cls(1 To n + 1): Set cls(n + 1).OB = c
Next n
End Sub
1752922522321.png

cela dit a moins que les options se comptent au minimum de 5/10 je ne vois pas l'utilité de construire dynamiquement les controls
avec classe ou intra userform comme je le fait dans cet exemple autant les faire en dur dans le VBE
 

Pièces jointes

Messieurs bonsoir,

J'avoue que je me suis pris comme un pied. J'avais fait une grossière erreur (ci-dessous)
VB:
With ob
    .Caption = "6ème VIII"
    .Left = x
    .Top = y
    .Width = 90
    .Height = 20
    .Font.Name = "Tahoma"
    .Font.Size = 10
    .Font.Bold = True
    .Font.Color = vbWhite  ' ici
End With
Mon cerveau était bloqué. Je me suis résigné à ouvrir une discussion.

Vos interventions sont très pertinentes. Vos exemples vont me servir à y voir plus clair.
J'espère ne pas oublier. L'oubli fait maintenant parti de mon quotidien.

Encore merci.

Excellente soirée à vous.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
7
Affichages
324
  • Question Question
Microsoft 365 Lecture vocale USF
Réponses
5
Affichages
167
  • Question Question
Réponses
6
Affichages
275
  • Question Question
Microsoft 365 bouton supprimer
Réponses
4
Affichages
104
Réponses
15
Affichages
265
Retour