OptionButton pour passer en GRAS

Résolu
duduleray -  
 duduleray -
Bonjour a tous et toutes , Forum



j'ai un UserForm1 avec un OptionButton19 ainsi qu'une Zone (B2:F17) de cellule sur la
feuille excel 2007 ici pour essai.

Je souhaiterai svp que lorsque je click sur le bouton que cela passe le Fond du bouton en vert quand c'est cliqué et Rouge quand il n'ai plus cliqué

Je résume :

bouton décoché = Fond bouton en Rouge
bouton coché = Fond en vert

et bien l'action a générer est de passer en GRAS un mot de la zone (B2:F17) après avoir sélectionner bien sur la cellule qui contient le mot de la feuille a modifier.

je vous remercie de votre temps ainsi que de votre aide

Bon W-end a tous

Raymond

10 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Il faut soit un deuxieme Bouton Option ou un peu de code sur un evenement pour "decocher" un bouton Option.

    Couleur Fond:

    Private Sub OptionButton1_Click()
    OptionButton1.BackColor = vbGreen
    End Sub

    Private Sub OptionButton2_Click()
    OptionButton1.BackColor = vbRed
    End Sub

    Si vous ne voulez pas de deuxieme Bouton Option ou pas de code supplementaire, prenez une case a cocher

    Private Sub CheckBox1_Click()
    If CheckBox1.Value = True Then
    CheckBox1.BackColor = vbGreen
    Else
    CheckBox1.BackColor = vbRed
    End If
    End Sub

    Bonne suite
    0
  2. duduleray
     
    Bonjour, f894009,

    Merci pour ta réponse et le petit code, c'est sympa

    Bon pour la couleur, c'est bon ça marche, effectivement je pense qu'un CheckBox devrai faire l'affaire

    Je mets quoi svp comme code pour passer en GRAS le mot dans la cellule choisie

    car si je click ca passera le mot en gras mais is je reclick le mot repassera en normal

    je ne sais pas trop comment faire

    Merci de ton aide je te souhaite un bon W-end

    Cordialement Ray
    0
  3. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Private Sub CheckBox1_Click()
    'test le nom de la feuille et dans la plage de cellule: B2:F17
    If ActiveSheet.Name = "Feuil1" And _
    (ActiveCell.Row < 18 And ActiveCell.Row > 1) And _
    (ActiveCell.Column < 7 And ActiveCell.Column > 1) Then

    If CheckBox1.Value = True Then
    'Passage en caractere GRAS
    With ActiveCell.Font
    .Bold = True
    End With
    CheckBox1.BackColor = vbGreen
    Else
    'Passage en caractere NON GRAS
    With ActiveCell.Font
    .Bold = False
    End With
    CheckBox1.BackColor = vbRed
    End If
    End If
    End Sub

    Bonne suite
    0
  4. duduleray
     
    Re

    Merci beaucoup, j'ai mis un checkbox comme conseillé, ça fonctionne très bien.

    Serait'il possible svp de faire en sorte que cela fonctionne également avec plusieurs

    cellules sélectionnées Ex: E5:E10

    je ne sais pas la si c'est possible ???

    Merci a toi ici a Rouen soleil enfin

    Raymond
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Private Sub CheckBox1_Click()
    'test le nom de la feuille et dans la plage de cellule: B2:F17
    If ActiveSheet.Name = "Feuil1" And _
    (ActiveCell.Row < 18 And ActiveCell.Row > 1) And _
    (ActiveCell.Column < 7 And ActiveCell.Column > 1) Then
    adress = Selection.Address(0, 0)

    If CheckBox1.Value = True Then
    'Passage en caractere GRAS
    Range(adress).Font.Bold = True
    CheckBox1.BackColor = vbGreen
    Else
    'Passage en caractere NON GRAS
    Range(adress).Font.Bold = False
    CheckBox1.BackColor = vbRed
    End If
    Else
    MsgBox ("Selection en dehors de la plage")
    End If
    End Sub

    Vous pouvez selectionnes des cellules consecutives ou non.
    Le test cellules en dehors de la plage n'est plus vrai a 100%, il faudrait le sophistiquer un peu.

    Bonne suite
    0
  7. duduleray
     
    Re f894009

    Merci pour la modification ça fonctionne très bien.

    Rajouter juste un Dim pour variable Adress et changer nom de la feuille normal.

    Question svp: Par rapport a ce que tu me dit ci-dessous

    Pour info: ma plage sera environ celle d'un écran, pas encore déterminer pour l'instant

    Le test cellules en dehors de la plage n'est plus vrai a 100%, il faudrait le sophistiquer un peu.

    Ca serait embètant de sophistiquer ou pas, je vois pas trop ou tu veux en venir

    Tu peux m'expliquer un peu svp

    et si tu saurai me faire , ça m'interresserai aussi, un plus pour mon programme

    Merci pour ton aide a plus tard

    Raymond
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Si vous avez des cellules en dehors de votre plage (B2:F17) ou il y a du texte ou autres info, cela eviterait de modifier le style d'ecriture de ces cellules.
      0
  8. duduleray
     
    Re

    Merci pour les infos, j'ai estimé que ma zone de travail s'étendra environ

    de A1:Z45 j'ai un écran 22 pouces.

    Voila donc si on peux améliorer votre code, je suis preneur pour la sophistiquation

    Merci pour le coup de main.

    Bonne après midi

    Raymond
    0
  9. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Re,

    Private Sub CheckBox1_Click()
    Dim adress, Cellule As Range
    'test le nom de la feuille et dans la plage de cellule: A1:Z45
    If ActiveSheet.Name = "Feuil1" Then
    'test cellule dans la plage
    For Each Cellule In Selection
    If Cellule.Row > 45 Or Cellule.Column > 26 Then
    CheckBox1.Value = False
    CheckBox1.BackColor = &H8000000F
    Exit Sub
    End If
    Next Cellule
    adress = Selection.Address(0, 0)
    Cells(20, 1) = Selection.Address(0, 0)
    If CheckBox1.Value = True Then
    'Passage en caractere GRAS
    Range(adress).Font.Bold = True
    CheckBox1.BackColor = vbGreen
    Else
    'Passage en caractere NON GRAS
    Range(adress).Font.Bold = False
    CheckBox1.BackColor = vbRed
    End If
    Else
    MsgBox ("Pas la bonne Feuille!!!!")
    End If
    End Sub

    Bonne suite
    0
  10. duduleray
     
    Salut f894009

    Merci beaucoup pour le code, c'est très gentil, alors ça fonctionne bien

    juste svp une petite modification car un truc ne va pas bien

    quand je sélectionne une ou plusieurs cellules, je click sur le CheckBox (GRAS)
    ça fonctionne le TEXTE passe en GRAS et le bouton en vert, jusqu'a la c'est bon.

    mais quand je désélectionne le bouton reste vert, ça c'est pas bon !!

    il faudrai svp que lorsque je désélectionne le bouton doit repasser en Rouge
    et donc près pour une nouvelle opération

    Quand rien sélectionner bouton égal Rouge

    Après ce doit ètre bon pour moi

    Merci a toi a plus tard

    Raymond
    0
  11. duduleray
     
    Bonjour f894009

    J'ai trouver pour le dernier soucis j'ai mis au bon endroit de mon programme un "CheckBox1.Value = True" pour désactiver quand il ni a plus de sélection de cellules.

    Donc la cela fonctionne très bien maintenant

    Me reste a te remercier de ton aide ainsi que pour les codes que tu m'a fait

    je te souhaite un bon Dimanche et encore merci a toi

    Cordialement Raymond
    0