[VBA] Bouton couleur et formule NB

Bonjour à tous,

Je sèche sur des formules de VBA.

Je voudrais réaliser des boutons qui changent de couleur (Une couleur de base; une verte; une rouge, une orange et en faire une boucle)

Et deuxième partie, est ce qu'il existe une formule qui compte le nombre de bouton qui ont telle couleur, telle couleur etc..

J'ai pu écrire une partie du code mais je n'arrive pas à insérer une troisieme couleur et cela met automatiquement mon bouton en vert dès le début sans être neutre.:

Private Sub CommandButton1_Click()
If CommandButton1.BackColor = RGB(0, 255, 0) Then
     CommandButton1.BackColor = RGB(255, 0, 0)
Else
     CommandButton1.BackColor = RGB(0, 255, 0)
End If
End Sub

Merci de votre aide

bonsoir,

Une bonne occasion d'utiliser Select case...

A+

Private Sub CommandButton1_Click()
Dim i, ii
i = CommandButton1.BackColor
Select Case i
Case RGB(0, 255, 0): ii = RGB(0, 0, 255)
Case RGB(0, 0, 255): ii = RGB(255, 0, 0)
Case RGB(255, 0, 0): ii = RGB(0, 255, 120)
Case RGB(0, 255, 120): ii = RGB(120, 0, 255)
Case RGB(120, 0, 255): ii = RGB(255, 120, 0)
Case Else: ii = RGB(0, 255, 0)
End Select
     CommandButton1.BackColor = ii
End Sub

Bonjour, merci beaucoup pour votre réponse je l'ai mise à jour pour que cela corresponde aux couleurs que je veux

Je me suis penché sur un code pour compter les boutons mais j'ai une erreur. Qu'en pensez vous? Merci d'avance

6classeur1.xlsm (21.03 Ko)

J'ai pratiquement réussi.

Si j'enleve le jaune cela fonctionne mais ca bloque à ce moment :

Quand je rajoute nbJ = CompteBoutons(jaune) ça bug

Private Sub CommandButton4_Click()
Dim nbR As Integer
Dim nbV As Integer
Dim nbO As Integer
  nbV = CompteBoutons(vert)
  nbR = CompteBoutons(rouge)
  nbJ = CompteBoutons(jaune)

Avec le vert et rouge cela fonctionne.

De plus est-il possible d'associer cette récupération à une cellule? Afin que j'ai les chiffres qui apparaissent en cellule et non en msgbox.

7classeur1.xlsm (21.58 Ko)

Ou alors je mets plusieurs boutons : Bouton1 affiche dans une cellule masquée V ou R ou J. Bouton2 affiche dans une cellule masquée etc selon la couleur du bouton et j'utilise une formule nb ensuite.

normal que ça bug tu déclares:

Dim nbO

puis tu utilises nbJ !

Moi je sais pas ce que tu brocantes avec ton compteur de couleur mais pour le reste je coderais comme ça pour la gestion des couleurs :

Option Explicit
Const vert& = 65280
Const rouge& = 255
Const jaune& = 65535

Private Sub CommandButton1_Click()
Dim i, ii
i = CommandButton1.BackColor
Select Case i
Case 65280: ii = 255
Case 255: ii = 65535
Case Else: ii = 65280
End Select
     CommandButton1.BackColor = ii
End Sub

Private Sub CommandButton4_Click()
Dim nbR As Integer
Dim nbV As Integer
Dim nbJ As Integer
  nbV = CompteBoutons(vert)
  nbR = CompteBoutons(rouge)
  nbJ = CompteBoutons(jaune)
    MsgBox nbV & " validé" & vbCrLf & _
         nbR & " échec" & vbCrLf & _
         nbJ & " non évaluable"
End Sub

A+

Ah oui car j'ai voulu tester avec l'orange mais j'ai oublié de changer.

Du coup avec ton code couleur décimal j'ai trouvé la couleur orange que j'ai remplacé (jaune) et ça fonctionne!

Merci de ton aide.

Il me reste plus qu'à trouver comment transposer un texte dans une cellule selon la couleur.

Rechercher des sujets similaires à "vba bouton couleur formule"