Colorer un bouton sous Excel

Bonjour,

Je souhaiterai savoir si quelqu'un sait quel sont les lignes de code que je dois rajouter dans ma macro, pour que le bouton sur lequel je clic (qui exécute une macro) change de couleur (passe en vert par exemple).

Merci d'avance pour votre aide.

10 réponses

  1. Salut,

    exemple 1 clic passe en vert et double clic en rouge

    Private Sub CommandButton1_Click()
    CommandButton1.BackColor = &HFF00&
    End Sub

    Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    CommandButton1.BackColor = &HFF&
    End Sub
    1
    1. Merci beaucoup Mike,

      Je viens de faire un essai cela marche impeccablement bien
      0
  2. Pour faire suite à ma première question,

    Où puis-je trouver un tableau avec les couleurs et leur indice hexadecimale.
    Si cela existe.

    Merci.
    0
    1. Merci pour toutes ces infos
      0
      1. Maintenant j'aimerai inserer le changement de couleur dans ma macro, la voici :
        Sub ST6W105M()

        '
        ' ST6W105M Macro
        '

        '
        Sheets("ST 6W105M").Select
        Rows("1:188").Select
        Selection.Copy
        Sheets("ST").Select
        Range("A12").Select
        Selection.Insert Shift:=xlDown
        Range("A1").Select
        Sheets("Devis").Select
        ActiveSheet.Shapes.Range(Array("Button 73")).Select
        Selection.Font.Bold = True
        Range("B28").Select
        ActiveCell.FormulaR1C1 = "6W105M"
        Range("C28").Select
        ActiveCell.FormulaR1C1 = 1
        Range("F28").Select
        ActiveCell.FormulaR1C1 = "='6W105M'!R[18]C[1]"
        Range("A12").Select
        End Sub

        Quelqu'un peut t'il m'aider?
        0
        1. Re,

          Ton code peut être amélioré quand à l'insertion de la couleur dans le code pas de problème mais à quel moment veux tu que la couleur change, en fin de procédure ou en fonction d'une valeur contenue dans une cellule
          0
          1. J'aimerais que la couleur change juste après :

            ActiveSheet.Shapes.Range(Array("Button 73")).Select
            Selection.Font.Bold = True

            ou avant peut importe....

            Je sais que mon code n'est pas top, car il est issu d'un "enregistrement de macro".

            Mais bon, ça marche pas trop mal, pour l'instant je m'en contente, j'essaierai de l'améliorer par la suite.
            Si tu as du temps et que tu pense pour l'améliorer, dis moi ce que tu en penses.

            Merci d'avance.
            0
            1. Re,

              Crée un bouton ActiveX et colle la partie en gras dans ses propriétés

              Private Sub CommandButton1_Click()

              Sheets("ST 6W105M").Select
              Rows("1:188").Select
              Selection.Copy
              Sheets("ST").Select
              [A12].Select
              Selection.Insert Shift:=xlDown
              [A1].Select
              Sheets("Devis").Select
              ActiveSheet.Shapes.Range(Array("Button 73")).Select
              Selection.Font.Bold = True
              CommandButton1.BackColor = &HFF00&
              [B28].FormulaR1C1 = "6W105M"
              [C28].FormulaR1C1 = 1
              [F28].FormulaR1C1 = "='6W105M'!R[18]C[1]"
              [A12].Select

              End Sub

              Ce qui me pose problème c'est la ligne ci dessous, que veux tu faire exactement après avoir mis les ligne de 1 à 188 en situation copier, je pense que tu souhaites simplement copier une plage de A1 à x118 non

              Selection.Insert Shift:=xlDown
              0
              1. En faite je veut copier la selection A1 à A188 de l'onglet 'ST 6W105M' dans l'onglet 'ST' a partir de A 12

                Par contre, le programme bloque à:

                Rows("1:188").Select
                0
                1. En faite cela ne marche pas lorsque je colle le code que tu m'a donné dans les propriétés de CommandButton1
                  0
              2. Re,

                Colle le code en gras dans les propriétés d'un CommandButton

                Private Sub CommandButton1_Click()

                Sheets("ST 6W105M").Select
                [A1:A188].Copy
                Sheets("ST").Select
                [A12].PasteSpecial Paste:=xlPasteValues
                Sheets("ST").[A1].Select
                Sheets("Devis").Select
                ActiveSheet.Shapes.Range(Array("Button 73")).Select
                Selection.Font.Bold = True
                Sheets("ST 6W105M").Select
                CommandButton1.BackColor = &HFF00&
                [B28].FormulaR1C1 = "6W105M"
                [C28].FormulaR1C1 = 1
                [F28].FormulaR1C1 = "='6W105M'!R[18]C[1]"


                End Sub

                A+
                Mike-31

                Une période d'échec est un moment rêvé pour semer les graines du savoir.
                0