Valeur Cellule Lance Une Macro

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 !

Berg1664

XLDnaute Occasionnel
Bonjour,

J'ai vu des sujets se rapprochant mais que je n'arrive pas à m'approprier, je suis encore trop inculte en langage VBA

Mon souhait : Si cela est possible que la macro "jaune" démarre si la valeur de la cellule D1 est égale à 4

Voir fichier joint

Merci à vous

Berg1664
 

Pièces jointes

Re : Valeur Cellule Lance Une Macro

bonjour Berg1664,

voici une solution :
dans le code de la feuille concernée (clic droit sur l'onglet --> visualiser le code), ajouter ça :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'si ce n'est pas la cellule D1 qui vient de changer, quitter la macro
If Application.Intersect(Target, Range("D1")) Is Nothing Then Exit Sub
If Target.Text = "4" Then 'si la valeur est = à 4, alors
    Jaune
Else    'sinon
    Blanc
End If
End Sub

a+
 
Re : Valeur Cellule Lance Une Macro

Hello,
C'est bien Ok quand on saisit directement 4

1/Mais Cela ne fonctionne plus si on dit que la cellule D1 est égale au contenu d'une autre Cellule, F1 par exemple, (en saisissant 4 dans F1)

2/ Cela ne marche pas non plus si la cellule D1 est une fonction sous-total égale à 4
Y'a til un moyen ?
Merci beaucoup

Berg1664
 
Re : Valeur Cellule Lance Une Macro

re bonjour,

voici le code légèrement modifié :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D1").Text = "4" Then 'si la valeur est = à 4, alors
    Jaune
Else    'sinon
    Blanc
End If
End Sub

cependant, à chaque changement de valeur de n'importe quelle cellule de la feuille, la macro va exécuter une des 2 autres macros (Blanc et Jaune).
qui finissent pas la sélection de la cellule A1.
Donc à chaque changement d'une des cellules, tu vas te trouver en A1.
je te conseille donc de légèrement modifier tes macros tel que :
Code:
Sub Blanc()
    Columns("A:B").Interior.ColorIndex = xlNone
End Sub


Sub Jaune()
        Columns("A:B").Interior.ColorIndex = 6
        Columns("A:B").Interior.Pattern = xlSolid
End Sub

ou de te passer de ces macros avec le code suivant :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("D1").Text = "4" Then 'si la valeur est = à 4, alors
    Columns("A:B").Interior.ColorIndex = 6
    Columns("A:B").Interior.Pattern = xlSolid
Else    'sinon
    Columns("A:B").Interior.ColorIndex = xlNone
End If
End Sub

a+
 
- 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

Retour