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

XL 2013 Cacher des lignes selon une valeur

leneh

XLDnaute Nouveau
Bonjour,

Je rempli une valeur entre 1 et 10 dans la case C6 et selon la valeur cela me cache certaines lignes.
Lorsque je change la valeur C6, la fenêtre VBA s'ouvre en me mettant en défaut cette ligne :
Rows("52:231").EntireRow.Hidden = False

de ce code :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = 0

Rows("52:231").EntireRow.Hidden = False
If Range("C6").Value = "1" Then Rows("52:231").EntireRow.Hidden = True
If Range("C6").Value = "2" Then Rows("72:231").EntireRow.Hidden = True
If Range("C6").Value = "3" Then Rows("92:231").EntireRow.Hidden = True
If Range("C6").Value = "4" Then Rows("112:231").EntireRow.Hidden = True
If Range("C6").Value = "5" Then Rows("132:231").EntireRow.Hidden = True
If Range("C6").Value = "6" Then Rows("152:231").EntireRow.Hidden = True
If Range("C6").Value = "7" Then Rows("172:231").EntireRow.Hidden = True
If Range("C6").Value = "8" Then Rows("192:231").EntireRow.Hidden = True
If Range("C6").Value = "9" Then Rows("212:231").EntireRow.Hidden = True

Application.ScreenUpdating = -1
End Sub

Pouvez-vous m'aider s'il vous plait? Je ne comprends pas ce qu'il se passe.

Je vous remercie.
Leneh
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

A tester:
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) <> "C6" Then Exit Sub
    Application.ScreenUpdating = False
    Rows(52).Resize(180).EntireRow.Hidden = False
    If Target.Value > 0 And Target.Value < 10 Then Range(CStr(32 + (Target.Value * 20)) & ":231").EntireRow.Hidden = True
    Application.ScreenUpdating = True
End Sub

Cordialement
 

laurent3372

XLDnaute Impliqué
Supporter XLD
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range, rownum As Long
    
    Set rng = Range("C6")  'Cellule à surveiller
        'Si la modif ne concerne pas la cellule à surveiller, on ne fait rien
    If Intersect(Target, rng) Is Nothing Or Not IsNumeric(rng.Value) Then Exit Sub
    Rows("52:231").Hidden = False   'On affiche toutes les lignes
    rownum = 32 + rng.Value * 20    'On calcule la ligne de début
    Rows(rownum & ":231").Hidden = True ' On cache les lignes de la ligne de début à la dernière ligne
End Sub
 

Discussions similaires

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