Microsoft 365 Déclenchement macros quand modifications cellules différents

  • Initiateur de la discussion Initiateur de la discussion Lisette
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Lisette

XLDnaute Junior
Bonjour à tous !

Petite question 🙂
Dans ma feuille, je cherche à faire la chose suivante :
- en A1, j'ai un résultat de fonction qui change : cela doit faire changer la couleur de ma forme.

👍ça, j'ai réussi avec le code suivant :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("J49")) Is Nothing Then Exit Sub
    
    If IsNumeric(Target.value) Then
        If Range("O49") = 1 Then
            ActiveSheet.Shapes.Range(Array("TR2Z1")).Fill.ForeColor.RGB = vbRed
        Else
            ActiveSheet.Shapes.Range(Array("TR2Z1")).Fill.ForeColor.RGB = vbGreen
        End If
    End If
    End Sub

Par contre, là où ça se corse, c'est que je souhaite aussi que sur la même feuille :
- en B1, j'ai un résultat de fonction qui change : cela doit faire changer la couleur d'une autre forme.

😱 Et là, mes (in)compétences en VBA se limitent, car je ne parviens pas à le faire.
Je pense ien que le "Then Exit Sub" doit être changé pour aller vérifier une autre condition quand la première n'est pas remplie, mais je sèche complètement !!

Pourriez-vous m'aider s'il vous plaît ?
Par avance un immense MERCI !

Lisette
 
Bonjour Lisette,
Essayez cela :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("J49")) Is Nothing Then
        If IsNumeric(Target.Value) Then
            If Range("O49") = 1 Then
                ActiveSheet.Shapes.Range(Array("TR2Z1")).Fill.ForeColor.RGB = vbRed
            Else
                ActiveSheet.Shapes.Range(Array("TR2Z1")).Fill.ForeColor.RGB = vbGreen
            End If
        End If
    End If
    If Not Intersect(Target, Range("B1")) Is Nothing Then
        ' Code si B1 a changé
    End If
End Sub
On peut analyser cas après cas.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
224
Réponses
4
Affichages
243
Retour