Action VBA uniquement sur changement valeur cellul

a3lain

XLDnaute Junior
Bonjour à tous,

Je voudrais modifier le code VBA suivant pour que l'action ne se passe uniquement que lorsque la cellule D4 change de Yes à No et inversement et non à chaque fois que quelque chose d'autre change dans la feuille, ce qui se passe actuellement. Je ne dois pas utiliser la bonne fonction j'imagine.
Merci
Alain

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Range('D4').Value
Case 'NO'
Rows('8:13').Select
Selection.EntireRow.Hidden = False
Rows('164:172').Select
Selection.EntireRow.Hidden = False
Rows('16:17').Select
Selection.EntireRow.Hidden = True
Rows('156:163').Select
Selection.EntireRow.Hidden = True
Case 'YES'
Rows('16:17').Select
Selection.EntireRow.Hidden = False
Rows('156:163').Select
Selection.EntireRow.Hidden = False
Rows('8:13').Select
Selection.EntireRow.Hidden = True
Rows('164:172').Select
Selection.EntireRow.Hidden = True
End Select
End Sub
 

Charly2

Nous a quittés en 2006
Repose en paix
Bonjour a3lain et Jacques87 :)

Alors pour ça il faut que tu ajoutes un test en début de procédure :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = '$D$4' Then
Select Case Range('D4').Value
Case 'NO'
Rows('8:13').Select
Selection.EntireRow.Hidden = False
Rows('164:172').Select
Selection.EntireRow.Hidden = False
Rows('16:17').Select
Selection.EntireRow.Hidden = True
Rows('156:163').Select
Selection.EntireRow.Hidden = True
Case 'YES'
Rows('16:17').Select
Selection.EntireRow.Hidden = False
Rows('156:163').Select
Selection.EntireRow.Hidden = False
Rows('8:13').Select
Selection.EntireRow.Hidden = True
Rows('164:172').Select
Selection.EntireRow.Hidden = True
End Select
End If
End Sub

A+ ;)
 

Discussions similaires

Réponses
13
Affichages
2 K
Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 451
Messages
2 088 529
Membres
103 879
dernier inscrit
JJB2