Masquer ou afficher des lignes en fonction de la valeur d'une cellule Liste

Bonjour à tous et à toutes.

Après pas mal de lecture de votre forum pour m'instruire en VBA, je me lance désormais dans une demande qui je pense, est assez simple mais pour laquelle je n'ai pas trouvé de réponse adaptée

Ma problématique est la suivante :

J'ai une liste de valeur (de 0 à 15) dans une cellule (D4) et j'aimerai qu'en fonction de la valeur de celle-ci, un certain nombre de lignes, toujours le même nombre, soit masqué.

En gros, si j'ai 1 en D4, j'aimerai que les lignes de 73 à 1040 soient masquée (et donc que les lignes de 0 à 73 soient affichées

Si j'ai 2 que les lignes de (73+66) à 1040 soient masquée (et donc que les liges de 0 à (73+66) soient affichées

Si j'ai 3 de (73+66)+66) à 1040 soient masquée etc...

(et donc que les lignes avant 73 soient affichées bien évidemment

j'imagine que je vais devoir utiliser quelque chose comme "I+66" mais je n'arrive pas à trouver la méthodo ^^

j'ai essayé cette macro (enfin commencé) mais je pense que je peux faire BEAUCOUP plus simple et moins fastidieux :

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$D$2" Then '<-- vérification que la modification se passe dans la cellule A4
    Select Case Target.Value
        Case "": Rows("1:1039").Hidden = True
        Case "1": Rows("1:73").Hidden = False
    End Select
End If
End Sub

Merci d'avance pour votre aide

Alex

Bonjour, voici un code :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$2" Then
        Rows("1:1040").Hidden = False
        If Target.Value > 0 Then
            Rows(((Target.Value - 1) * 66 + 73) & ":1040").Hidden = True
        End If
    End If
End Sub

où la variable de la cellule D2 permet par multiplication de définir le nombre de fois 66 doit être ajouté à 73 pour connaitre le nombre de ligne à laisser visible. avec la valeur 0 toutes les lignes s'affichent.

vbMBHB

Bonjour, voici un code :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$D$2" Then
        Rows("1:1040").Hidden = False
        If Target.Value > 0 Then
            Rows(((Target.Value - 1) * 66 + 73) & ":1040").Hidden = True
        End If
    End If
End Sub

où la variable de la cellule D2 permet par multiplication de définir le nombre de fois 66 doit être ajouté à 73 pour connaitre le nombre de ligne à laisser visible. avec la valeur 0 toutes les lignes s'affichent.

vbMBHB

Bonjour vbMsgBoxHelpButton

hé bien écoute, un grand grand grand merci pour ton aide ! Tu viens effectivement de répondre parfaitement à ma question !!

Ce que je n'arrivais pas à trouver était la dernière ligne avant End if. mais j'imagine qu'en mettant mon problème au clair dans ma tête, j'aurai pus trouver la réponse par moi même?

Merci encore !

Alex

Je pense, c'est souvent comme ça : la tête dans le guidon et on ne voit plus rien.

Merci.

vbMBHB

Rechercher des sujets similaires à "masquer afficher lignes fonction valeur liste"