Microsoft 365 changer la Couleur de fond d'une forme suivant un text

tuonoman

XLDnaute Occasionnel
Bonjour à tous

grâce a l'aide de Soan et patricktoulon, j'utilise le code VBA
VB:
Sub hidetesthaut()
ActiveSheet.Unprotect
  Dim f As Boolean: f = Columns("b").Hidden: Columns("b:h").Hidden = Not f
  ActiveSheet.Shapes("Rectangle 7").TextFrame.Characters.Text = _
    IIf(f, "Masqu", "Affich") & "er test haut"
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Pour masquer des colonnes via un bouton qui est une forme.

maintenant j'essai de changer la couleur de ce bouton suivant le texte que contient cette forme

je suis arrivé a ce bon de code
Code:
Private Sub Worksheet_Change()
    If ActiveSheet.Shapes("Rectangle 7").TextFrame.Characters.Text = "Masquer test haut" Then
            ActiveSheet.Shapes("Rectangle 7").Fill.ForeColor.RGB = Red
        ElseIf ActiveSheet.Shapes("Rectangle 7").TextFrame.Characters.Text = "Afficher test haut" Then
           ActiveSheet.Shapes("Rectangle 7").Fill.ForeColor.RGB = Green
        End If
End Sub

mais il ne fonctionne pas.

Pouvez vous m'aider.

merci
 

soan

XLDnaute Barbatruc
Inactif
@Dranreb

??? j'ai écrit « changement de la valeur d'une cellule » pas « changement de la valeur d'une formule ».

sur mon Excel 2007, changer la valeur d'une cellule fait que la sub Worksheet_Change() est appelée, si la modif est faite sur la feuille correspondante de la sub événementielle (module de la feuille).​

soan
 

Dranreb

XLDnaute Barbatruc
La valeur de la cellule change si elle porte une formule dont la valeur change.
Beaucoups s'y sont trompés et ont cru que cela pouvait se détecter par une Worksheet_Change.
C'est pour ça que j'ai préféré parler de 'contenu' plutôt que de 'valeur'.
 

Discussions similaires

Réponses
0
Affichages
542

Statistiques des forums

Discussions
315 123
Messages
2 116 458
Membres
112 747
dernier inscrit
Boudiou