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