Masquer colonne et aperçu

Bonjour à tous

Je reviens encore vers vous pour de l'aide sur une macro. que j'ai mis dans feuil Impression mais Marche pas !!! .

J'ai une feuille Planning qui est complété (ici à la main pour l'exemple) pour un mois plus 1 semaine avant et après.

Une autre feuille Impression qui récupère les infos du mois complet (du 1 au 28 ou 29 ou 30 ou 31)

Quand je click sur le bouton APERCU j'aimerai sur la feuil "Impression" :

  • masquer les colonnes 29 ou 30 ou 31 par rapport à la sélection du mois.
  • ensuite une fois les colonnes masquer OUVRIR la feuille "Impression " en mode APERCU AVANT IMPRESSION.
Sachant par la suite que la feuil Impression sera masqué en permanence et si possible en quittant l'aperçu avant impression

que la feuil Impression puisse se remasquer automatiquement.

Celà est ma vision des choses sur le principe de fonctionnement mais si vous avez des propositions plus éfficaces n'ésité pas.

Cdlt

Fichier en PJ

12pompaero-v1.xlsm (44.93 Ko)

Bonjour,

Ta macro ne peut fonctionner car tu n'as pas d'évènement Change, le contenu des cellules ne change pas, il n'y a qu'un recalcul qui affiche une nouvelle valeur sans modifier le contenu.

Par ailleurs, ça n'aurait pas fonctionné de toute façon car ta cellule affiche un nom de mois mais aucunement des valeurs de 28 à 31 qui n'apparaissent d'ailleurs nulle part.

Donc, tu vas transformer ta macro ainsi, et la déplacer dans un module standard :

Sub ChangeMois()
    Dim m%, a%
    With Worksheets("Planning")
        m = .Range("A2").Value
        a = .Range("H4").Value
    End With
    With Worksheets("Impression")
        Select Case m
            Case 1, 3, 5, 7, 8, 10, 12
                .Columns("BG:BL").Hidden = False
            Case 4, 6, 9, 11
                .Columns("BG:BJ").Hidden = False
                .Columns("BK:BL").Hidden = True
            Case 2
                .Columns("BG:BL").Hidden = True
                If a Mod 100 > 0 Then
                    If a Mod 4 = 0 Then a = 0
                Else
                    If a Mod 400 = 0 Then a = 0
                End If
                If a = 0 Then .Columns("BG:BH").Hidden = False
        End Select
    End With
End Sub

Ensuite tu l'affectes au bouton-toupie qui te sert à changer le mois.

Ce sera déjà quelque chose qui marche.

Pour le reste, je n'ai pas bien compris et comme il n'y a pas encore assez d'éléments pour avoir une idée de la méthodologie d'utilisation dans le temps, je te laisse prendre le temps de préciser ton projet...

Bonne journée

Ferrand

Bonjour

A tester

Bonjour MFerrand, Banzai64

Merci à vous 2 pour votre implication sur mon poste.

Banzai64 !!! un revenant... le repos à été de courte durée !

Désolé pour MFerrand mais la solution de Banzai64 me convient mieux au projet.

Banzai64 : petite question, comment peu ton récupérer la sheets "Impression" au cas d'aménagement sur la feuille ? J'ai bien essayé avec click droit puis affiché mais pas de sheets !!!

Cdlt

Bonjour

Il faut passer par VBA

Une solution : Propriété visible de la fenêtre il faut la positionner sur xlSheetVisible

Si tu veux seulement la masquer mais pouvoir la voir dans le menu de l'onglet modifie la la fin de la macro

    .Visible = xlSheetVisible
    .PrintPreview
    .Visible = xlSheetHidden
  End With
End Sub

Re

Toujours aussi bon et rapide .

Merci des conseils c'est noté dans un coin car il me fallai paramétrer les cellules du total semaine en supérieur à 13:30 mais je remettrai comme avant une fois fini.

Bon courage à toi

Cdlt

Rechercher des sujets similaires à "masquer colonne apercu"