Démarrer code lors changement valeurs cellules

Bonjour à tous,

Je suis actuellement en train de développer un outil, et je suis amener à masquer/afficher des lignes, pour améliorer l'esthétique.

Le code fonctionne (ci-dessous), mais si dans cette même feuille, je modifie une -cellule, liste déroulante, etc- autre que celles du code, le programme continue à faire les boucles.

J'aimerais que les codages correspondant se lancent uniquement lorsque l'utilisateur change la valeur en E16, et/ou toutes celles concernées par les K"n°" si c'est possible, merci !!

(p.s : j'ai mis le code dans la feuille concernée, pas de Module ou dans Thisworkbook)

J'ai essayé d'inclure un If Not Application.Intersect(Target, Range("")) Is Nothing Then

ca fonctionne pour E16, mais pas pour les K"n°"

Fravain

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("E16")) Is Nothing Then

''''''''K19, K59, K99, K139, K179 ??? comment les ajouter ?

'Camoufle les zones en fonctions des choix de menu déroulants

Application.ScreenUpdating = False
Application.DisplayAlerts = False

If Range("E16").Value <> "2" Then Rows("98:217").EntireRow.Hidden = False
If Range("E16").Value <> "3" Then Rows("138:217").EntireRow.Hidden = False
If Range("E16").Value <> "4" Then Rows("178:217").EntireRow.Hidden = False

'----------------------------

If Range("E16").Value = "2" Then

If Not Application.Intersect(Target, Range("E16, K19, K59")) Is Nothing Then

'Masque/Affichage Pièces 3/4/5 si 2 bilans

    'Si 2 : on masque pièce 3/4/5
    If Range("E16").Value = "2" Then Rows("98:217").EntireRow.Hidden = True

'Masque/Affichage Pièce 1 si Puissance connue OUI

    'Si 1 : on masque pièce 1
    If Range("K19").Value = "1" Then Rows("21:57").EntireRow.Hidden = True
    If Range("K19").Value = "0" Then Rows("21:57").EntireRow.Hidden = False

'Masque/Affichage Pièce 2 si Puissance connue OUI

    'Si 1 : on masque pièce 2
    If Range("K59").Value = "1" Then Rows("61:97").EntireRow.Hidden = True
    If Range("K59").Value = "0" Then Rows("61:97").EntireRow.Hidden = False

End If
End If

'----------------------------

If Range("E16").Value = "3" Then

If Not Application.Intersect(Target, Range("E16, K19, K59, K99")) Is Nothing Then

'Masque/Affichage Pièces 4/5 si 3 bilans

    'Si 3 : on masque pièce 4/5
    If Range("E16").Value = "3" Then Rows("138:217").EntireRow.Hidden = True

'Masque/Affichage Pièce 1 si Puissance connue OUI

    'Si 1 : on masque pièce 1
    If Range("K19").Value = "1" Then Rows("21:57").EntireRow.Hidden = True
    If Range("K19").Value = "0" Then Rows("21:57").EntireRow.Hidden = False

'Masque/Affichage Pièce 2 si Puissance connue OUI

    'Si 1 : on masque pièce 2
    If Range("K59").Value = "1" Then Rows("61:97").EntireRow.Hidden = True
    If Range("K59").Value = "0" Then Rows("61:97").EntireRow.Hidden = False

'Masque/Affichage Pièce 3 si Puissance connue OUI

    'Si 1 : on masque pièce 3
    If Range("K99").Value = "1" Then Rows("101:137").EntireRow.Hidden = True
    If Range("K99").Value = "0" Then Rows("101:137").EntireRow.Hidden = False

End If
End If

'----------------------------

If Range("E16").Value = "4" Then

If Not Application.Intersect(Target, Range("E16, K19, K59, K99, K139")) Is Nothing Then

'Masque/Affichage Pièce 5 si 4 bilans

    'Si 4 : on masque pièce 5
    If Range("E16").Value = "4" Then Rows("178:217").EntireRow.Hidden = True

'Masque/Affichage Pièce 1 si Puissance connue OUI

    'Si 1 : on masque pièce 1
    If Range("K19").Value = "1" Then Rows("21:57").EntireRow.Hidden = True
    If Range("K19").Value = "0" Then Rows("21:57").EntireRow.Hidden = False

'Masque/Affichage Pièce 2 si Puissance connue OUI

    'Si 1 : on masque pièce 2
    If Range("K59").Value = "1" Then Rows("61:97").EntireRow.Hidden = True
    If Range("K59").Value = "0" Then Rows("61:97").EntireRow.Hidden = False

'Masque/Affichage Pièce 3 si Puissance connue OUI

    'Si 1 : on masque pièce 3
    If Range("K99").Value = "1" Then Rows("101:137").EntireRow.Hidden = True
    If Range("K99").Value = "0" Then Rows("101:137").EntireRow.Hidden = False

'Masque/Affichage Pièce 4 si Puissance connue OUI

    'Si 1 : on masque pièce 4
    If Range("K139").Value = "1" Then Rows("141:177").EntireRow.Hidden = True
    If Range("K139").Value = "0" Then Rows("141:177").EntireRow.Hidden = False

End If
End If

'----------------------------

If Range("E16").Value = "5" Then

If Not Application.Intersect(Target, Range("E16, K19, K59, K99, K139, K179")) Is Nothing Then

'Masque/Affichage Pièce 1 si Puissance connue OUI

    'Si 1 : on masque pièce 1
    If Range("K19").Value = "1" Then Rows("21:57").EntireRow.Hidden = True
    If Range("K19").Value = "0" Then Rows("21:57").EntireRow.Hidden = False

'Masque/Affichage Pièce 2 si Puissance connue OUI

    'Si 1 : on masque pièce 2
    If Range("K59").Value = "1" Then Rows("61:97").EntireRow.Hidden = True
    If Range("K59").Value = "0" Then Rows("61:97").EntireRow.Hidden = False

'Masque/Affichage Pièce 3 si Puissance connue OUI

    'Si 1 : on masque pièce 3
    If Range("K99").Value = "1" Then Rows("101:137").EntireRow.Hidden = True
    If Range("K99").Value = "0" Then Rows("101:137").EntireRow.Hidden = False

'Masque/Affichage Pièce 4 si Puissance connue OUI

    'Si 1 : on masque pièce 4
    If Range("K139").Value = "1" Then Rows("141:177").EntireRow.Hidden = True
   If Range("K139").Value = "0" Then Rows("141:177").EntireRow.Hidden = False

'Masque/Affichage Pièce 5 si Puissance connue OUI

    'Si 1 : on masque pièce 5
    If Range("K179").Value = "1" Then Rows("181:217").EntireRow.Hidden = True
    If Range("K179").Value = "0" Then Rows("181:217").EntireRow.Hidden = False

End If
End If

'----------------------------

Application.ScreenUpdating = True
Application.DisplayAlerts = True

End If

End Sub
Rechercher des sujets similaires à "demarrer code lors changement valeurs"