Couleur d'un OptionButton au lancement

Résolu
cs_masterfree Messages postés 55 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 14 juillet 2012 - 7 févr. 2012 à 08:22
cs_masterfree Messages postés 55 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 14 juillet 2012 - 7 févr. 2012 à 11:58
Bonjour à tous,

Comme cela fait déjà plusieurs années que je n'ai plus fait de VB, j'ai beaucoup de lacunes !
Alors, ne m'en veuillez pas trop si mes questions ont l'ait sortie de maternelle.

Je mets ce bout de code pour que vous compreniez mieux.

Au lancement de la proc, l'OptionButton est déjà en background jaune.
Or, je ne voudrais qu'il change de couleur que lorsqu'il est cliqué.

Voulez-vous me dire comment faire ?

Merci d'avance de votre réponse.

Private Sub Q1_Click()
    Q1.BackColor = &HFFFF&
    Q2.BackColor = &H8000000F
    Q3.BackColor = &H8000000F
    Q4.BackColor = &H8000000F
    Q5.BackColor = &H8000000F
       REP = "E"
       L = "E"
End Sub



Cordialement, Masterfree

9 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 févr. 2012 à 08:37
Bonjour,

Tu es sous VB6 ? Utilise alors un groupe de optionbuttons indexés.
La chose sera alors beaucoup plus facile à écrire, avec peu de code.
Confirme d'abord être bien sous VB6 et non sous VBA


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 févr. 2012 à 08:42
Sans groupe indexé, tu n'auras d'autre ressource que d'écrire un code identique pour chacun de tes optionbuttons, ou au mieux d'appeler une procédure paramétrée


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 févr. 2012 à 09:05
C'est alors simple ===>> exemple ===>>
Tu insères un optionbutton nommé Q ===>> tu mets 0 à sa propriété index
puis pareil un optionbutton Q ===>> avec 1 en index
...
tu en mets ainsi 4, le dernier étant Q avec index 3

et ce code :


Private Sub Form_Activate()
  For i = 0 To 3
    Q(i).BackColor = vbYellow
    Q(i).Value = False
  Next
End Sub

Private Sub Q_Click(Index As Integer)
 For i = 0 To 3
   If Q(i).Value = True Then
     Q(i).BackColor = vbRed
   Else
     Q(i).BackColor = vbYellow
   End If
 Next
End Sub




____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
cs_masterfree Messages postés 55 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 14 juillet 2012
7 févr. 2012 à 08:54
Merci de ta réponse ucfoutu !

Je confirme, je suis bien sous VB6.

Et pour ce que m'indique, ce serait en effet la meilleure solution.
Quand faut y aller, faut y aller hein !

Comme je l'ai dit ça fait longtemps que je n'ai pas touché le VB, dans l'immédiat, c'est encore trop flou dans mon esprit, mais à force ça va revenir (j'espère !)

Si vraiment, j'ai de fortes lacunes, je ferai appel aux grosses têtes de ce forum !

A+


Cordialement, Masterfree
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_masterfree Messages postés 55 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 14 juillet 2012
7 févr. 2012 à 09:15
Génial ton exemple !
Mais je voulais savoir la proc "Form_Activate()", c'est vraiment utile ça ?

Cordialement, Masterfree
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 févr. 2012 à 09:16
Je ne l'ai mis là que pour l'exemple.
Tu peux t'en passer si, en mode création, tu les mets tous en jeune et non cochés.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_masterfree Messages postés 55 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 14 juillet 2012
7 févr. 2012 à 09:26
Je pense avoir pigé !
C'est une initialisation en qq sorte !

Je vais me pencher sur ton exemple qui m'est d'une grande aide !

Cordialement, Masterfree
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 févr. 2012 à 09:34
Tu découvres tout simplement les groupes de contrôles indexés. C'est puissant et très pratique.
Tu as bien compris que tu peux à tout moment et de n'importe où dans ton code te référer à un élément du groupe par son index ?
Exemples (farfelus, mais exemples) :
Private Sub Command1_Click()
  Q(2).Visible = False
  Q(3).Caption = "bonjour"
  Q(3).Move 0, 0
  Q(3).BackColor = RGB(0, 125, 125)
  Q(3).ForeColor = vbWhite
End Sub


Bonne découverte.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_masterfree Messages postés 55 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 14 juillet 2012
7 févr. 2012 à 11:58
Oui j'ai très bien compris le processus, mais, dans mon prg, cela ne va pas me servir énormément, quoique ???

Je vais voir ça de plus près.

Tes explications sont limpides et je suis certain que je saurais où m'adresser en cas de défaillances intellectuelles en VB !

A bientôt et merci pour tout.


Cordialement, Masterfree
0
Rejoignez-nous