Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Valeur Cellule Lance Une Macro

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

  • TEST LANCEMENT MACRO DEPUIS VALEUR CELLULE.xls
    29.5 KB · Affichages: 55

mromain

XLDnaute Barbatruc
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+
 

Berg1664

XLDnaute Occasionnel
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
 

mromain

XLDnaute Barbatruc
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+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…