Masquer des colonnes si une valeur d'une ligne.

Résolu/Fermé
Looping38 Messages postés 91 Date d'inscription samedi 22 octobre 2016 Statut Membre Dernière intervention 20 juillet 2020 - 10 sept. 2018 à 13:58
Looping38 Messages postés 91 Date d'inscription samedi 22 octobre 2016 Statut Membre Dernière intervention 20 juillet 2020 - 11 sept. 2018 à 09:54
Bonjour à tous.

Je souhaite masquer certaines colonnes si une valeur d'une ligne est égale à une valeur du gestionnaire de nom ou d'une celulle.
Je m'explique :
j'ai un tableau de garantie de mutuelles. Elles ont toutes sur la même ligne une année (ligne 106 est indiqué si 2018, 2019, ...)
Je souhaite que lorsque je vais sur cette feuille, ne s'affichent que les colonnes (à partir de la 7éme colonne) de l'année de date d'effet renseignée sur un autre onglet, et repris dans la liste des nom du gestionnaire de nom. Je peux également reprendre cette information dans une cellule sur cette même feuille.
J'ai tenté ça:

Private Sub Worksheet()
Dim X As Integer
Application.ScreenUpdating = False
For X = 7 To 200
If Cells(106, X) <> "2018" Then Columns("2018").Hidden
If Cells(106, X) <> "2019" Then Columns("2019").Hidden
Next
Application.ScreenUpdating = True
End Sub


Je voudrais remplacer le premier "2018" par la valeur issue de la cellule "Effet_date" de mon gestionnaire de nom, et le retrouver également en 2éme position.
Merci de vos retours.
Cordialement,

2 réponses

Looping38 Messages postés 91 Date d'inscription samedi 22 octobre 2016 Statut Membre Dernière intervention 20 juillet 2020 1
10 sept. 2018 à 15:09
Je reprends mes explications après avoir retourné le problème :
Je souhaite faire apparaître uniquement les colonnes dont la valeur en ligne 106 sont égale à la valeur de la cellule I10. Il s'agit des colonnes à partir de 7 et suivantes (actuellement jusqu’à colonne 89)

Je suis peut-être plus clair? ;)
Merci.
0
Looping38 Messages postés 91 Date d'inscription samedi 22 octobre 2016 Statut Membre Dernière intervention 20 juillet 2020 1
11 sept. 2018 à 09:54
J'ai finalement bricolé ça :
Dim X As Integer
Application.ScreenUpdating = False
For X = 7 To 200
If Cells(106, X) <> Cells(5, 2) Then Columns(X).Hidden = True
Next
Application.ScreenUpdating = True

qui se traduit par : pour les colonnes 7 à 200, si la valeur de la ligne 106 est différente de la cellule B5, alors cacher la colonne.
Je voudrais aller plus loin:
dans les cellules de la ligne 106, il pourrait y avoir les valeurs suivantes : 2018 ou 2018-2019 ou 2019. Comment demander à la macro de chercher 2018 par exemple et d'accepter les réponses 2018 et 2018-2019?
0