OptionButton pour passer en GRAS

Résolu
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

  • Votes
  • Date
  • Date décroissante
  1. 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
    1. 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
      1. 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
        1. 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
          1. 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
            1. 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.
          2. 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
            1. 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
              1. 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
                1. 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
                  1. 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