XL 2013 Planning de Vacances

klemasson

XLDnaute Nouveau
Bonjour,

J'ai créer un fichier planning de vacances mensualisé et annualisé pour l'entreprise ou je bosse
Mon boss aimerais aussi des boutons dans l'onglet Annuel, pour afficher mois par mois.
J'ai réussi à créer les boutons pour afficher toute l'année et masque toute l'année
Mais je n'arrive pas à créer par exemple le bouton janvier et qu'on voit que janvier.

Pouvez-vous m'aider ?

Merci d'avance et meilleures salutations
 

Pièces jointes

  • TABLEAU VACANCES1.xlsm
    173.5 KB · Affichages: 16

vgendron

XLDnaute Barbatruc
Hello
une solution en PJ
1) j'ai supprimé tous les boutons de mois et remplacé par une liste déroulante en F1 dans laquelle tu choisis le mois
à chaque changement (évènement change de la feuille), la macro AfficherMois est executée
 

Pièces jointes

  • TABLEAU VACANCES1.xlsm
    206.4 KB · Affichages: 10

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Klemasson, Vgendron,
Une autre approche en conservant les boutons avec :
VB:
Sub MontrerMois()
    ' Les boutons s'appellent Boutonxx avec xx le N° du mois concerné
    Dim N%, ColMois, Début%, Fin%
    Application.ScreenUpdating = False
    N = Val(Right(Application.Caller, 2))
    ColMois = Array(0, 10, 41, 69, 100, 130, 162, 191, 222, 253, 283, 314, 344, 375)
    Range(Cells(1, 10), Cells(1, 400)).EntireColumn.Hidden = False ' Démasque tout
    If N = 1 Then
        Range(Cells(1, 41), Cells(1, 400)).EntireColumn.Hidden = True
    Else
        Début = ColMois(N) - 1
        Fin = ColMois(N + 1)
        Range(Cells(1, 10), Cells(1, Début)).EntireColumn.Hidden = True
        Range(Cells(1, Fin), Cells(1, 400)).EntireColumn.Hidden = True
    End If
End Sub
 

Pièces jointes

  • TABLEAU VACANCES1.xlsm
    177 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
je pressens déjà un souci pour les années bissextiles....
Bien vu, ça m'a échappé.
Alors petite opération collégiale :
VB:
Sub MontrerMois()
    ' Les boutons s'appellent Boutonxx avec xx le N° du mois concerné
    Dim N%, ColMois, Début%, Fin%
    Application.ScreenUpdating = False
    With Sheets("Annuel")
        Mois = Val(Right(Application.Caller, 2))
        nbJours = DateSerial(2023, 12, 31) - DateSerial(2023, 1, 1)
        For j = 10 To 10 + nbJours
            .Cells(1, j).EntireColumn.Hidden = (Month(.Cells(4, j)) <> Mois)
        Next j
    End With
End Sub
😅😅😅
 

Pièces jointes

  • TABLEAU VACANCES V2.xlsm
    176.9 KB · Affichages: 8

Discussions similaires

Réponses
0
Affichages
222
Réponses
9
Affichages
368
Réponses
24
Affichages
418

Statistiques des forums

Discussions
312 209
Messages
2 086 263
Membres
103 167
dernier inscrit
miriame