Afficher/Masquer des lignes entière [Résolu]

Signaler
Messages postés
9
Date d'inscription
jeudi 7 juin 2018
Statut
Membre
Dernière intervention
30 août 2020
-
Messages postés
9
Date d'inscription
jeudi 7 juin 2018
Statut
Membre
Dernière intervention
30 août 2020
-
Bonjour,

Je bloque sur une macro et j'ai beau tourner ca dans tous les sens je ne trouve pas le problème.
J'ai un calendrier/planning automatique avec WE et jours fériés et je souhaite que pour les mois ayant moins de 31 jours, les lignes en trop se masquent puis reviennent pour les mois à 31 jours.

J'avais déjà fait un planning du genre avec les dates horizontales et les noms verticaux.
Et tout fonctionnait.
Pour des raisons pratique je dois inverser sur le nouveau planning (dates verticales) et là...ca coince.

Voici mon code
Sub MasquerJour()
Dim NumLine As Long
For NumLine = 39 To 42
If Month(Cells(NumLine, 1)) <> Cells(1, 77) Then
Rows(NumLine).Hidden = True
Else
Rows(NumLine).Hidden = False
End If
Next
End Sub


Mes lignes 40 à 42 contiennent les jours 28, 29, 30, 31.
La Cellule (1, 77) est un panneau déroulant ou on choisi le mois, c'est la cellule BY1 et sur laquelle ma macro est affectée.

En l'état, mes lignes se masquent bien quand je change de mois mais pour tous les mois, même ceux qui ont 30 ou 31 jours, les quatre lignes se masquent.
Donc, même si c'est logique elle ne réapparaissent pas lorsque que je sélectionne un mois à 31jours.

Vu que ca fait deux jours que je me prend la têtes dessus je me dis que c'est peut etre juste un truc tout con que je ne vois plus car trop la tête dedans mais si vous avez besoin de screen ou meme du fichier dites les moi.

Merci

PS :
Je vous rajoute l'ancien code du planning horizontale qui fonctionne très bien.
Sub Masquer_Jour()
Dim NumCol As Long
For NumCol = 30 To 32
If Month(Cells(6, NumCol)) <> Cells(1, 1) Then
Columns(NumCol).Hidden = True
Else
Columns(NumCol).Hidden = False
End If
End Sub

4 réponses

Messages postés
2121
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
2 septembre 2020
280
Bonjour,

J'ai reproduit un pseudo calendrier en fonction de votre code, et cela fonctionne bien, mais je n'ai peut-être pas tous les éléments (Comment est fait votre feuille, comment est sélectionné le mois), peut-être faudrait-il chercher de ce côté là.

Si vous pouviez déposer votre fichier (pas une capture d'écran) sans données confidentielles, on pourrait plus facilement trouver ce qui ne va pas.

Cdlt
Messages postés
9
Date d'inscription
jeudi 7 juin 2018
Statut
Membre
Dernière intervention
30 août 2020

Merci pour la réponse
J'ai continué à avancer sur le planning du coup certaines coordonnées ont changées mais c'est tout.
Je vous met le fichier ici :
https://www.cjoint.com/c/JHEil2to50P

Dans le dernière sauvegarde j'ai essayé de prendre comme cellule de comparaison celle du 1er jour du mois mais le problème reste le même. Aussi j'ai rajouter un bouton pour afficher les lignes qui se masquent, plus simple, le temps de régler le problème.

Pour rappel la macro "MasquerJour" est associée au panneau déroulant des années se trouvant en B1 et celui des mois en BY1 (ma zone de valeur que j'aime bien placer sur la meme feuille mais assez loin)
Messages postés
2121
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
2 septembre 2020
280
Il faut aussi tester le mois de la cellule pour faire la comparaison: Month(Cells(8, 1)) Then

Sub MasquerJour()
Dim NumLine As Long
    For NumLine = 36 To 38
    If Month(Cells(NumLine, 1)) <> Month(Cells(8, 1)) Then
            Rows(NumLine).Hidden = True
        Else
            Rows(NumLine).Hidden = False
        End If
    Next
End Sub
Messages postés
9
Date d'inscription
jeudi 7 juin 2018
Statut
Membre
Dernière intervention
30 août 2020

J’avais essayé, mais pas depuis que j’ai sélectionné la cellule du 1er jour du mois du coup je vais retenter tout à l’heure.
Je pense qu’à force de pas trouver je n’arrivais plus à réfléchir ????.
Je vous tiens au courant, merci
Messages postés
9
Date d'inscription
jeudi 7 juin 2018
Statut
Membre
Dernière intervention
30 août 2020

C'est bon ça fonctionne bien, ça tenait à rien.
Encore merci