Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Bouton automatiser sur le choix du mois pour affichage en haut de la page

TAL

XLDnaute Occasionnel
Bonjour,

Je reviens vers vous pour avoir votre aide encore une fois.
Cela concerne toujours le même fichier du précédent post.

Si vous auriez une formule magique qui permettrait d'afficher le mois concerné juste en dessous de la ligne 1 qui est figé.
Je voudrais naviguer de mois en mois juste en cliquant sur les objets qui sont la ligne 1.

J'ai essayé, mais quand je change de mois ou d'année en B1 et/ou B2, l'affichage du mois sélectionné sur l'objet peut avoir 1 à 2 ligne supplémentaire en dessous de la ligne 1.

L'exemple dans le fichier correspond exactement à l'affichage espéré, pouvoir naviguer sur n'importe quel mois et que celui apparaît juste en dessous de la ligne 1.

En espérant que ces explications soit plus ou moins claire.

Merci pour votre aide
 

Pièces jointes

  • TRAME PLANNING JOUR VBA.xlsm
    87.5 KB · Affichages: 10

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Tal,
Un essai en PJ où j'ai modifié l'approche. J'ai supprimé tous les liens hypertextes, la macro est appelée par appui sur un des boutons. Je ne décale pas l'écran mais masque les lignes inutilisées. Avec :
VB:
Sub AfficherMois()
    ' Est appelée par boutons des mois ou par Worksheet_Change
    Application.ScreenUpdating = False
    Dim Début, Fin, Mois, ChaineMoisDébut, ChaineMoisFin
    If IsError(Application.Caller) Then                         ' Erreur si l'origine est Worksheet_Change et non un bouton
        Mois = 1                                                ' Si pas bouton appuyé, par défaut 1
    Else
        Mois = Val(Mid(Application.Caller, 5))                  ' Récupère le N° du bouton appuyé
    End If
    ChaineMoisDébut = Application.Index([ListeMois], Mois)      ' Récupère la chaine du mois en feuil Fériés
    Début = Application.Match(ChaineMoisDébut, [H1:H310], 0)    ' Cherche la ligne qui contient cette chaine
    ChaineMoisFin = Application.Index([ListeMois], Mois + 1)    ' Récupère la chaine du mois suivant en feuil Fériés
    Fin = Application.Match(ChaineMoisFin, [H1:H310], 0)        ' Cherche la ligne qui contient cette chaine
    If IsError(Fin) Then Fin = 310                              ' Si dernier bouton alors erreur sur mois suivant, assume dernière ligne 310
    Rows("1:310").EntireRow.Hidden = False                      ' Démasque toutes les lignes
    If Début > 2 Then Rows("2:" & Début - 1).EntireRow.Hidden = True    ' Masquer de la ligne 2 au début ( hormis premier mois )
    Rows(Fin & ":310").EntireRow.Hidden = True                          ' Masquer du dernier jour du mois à la fin
End Sub
( Deux listes ont été rajoutées dans Fériés pour reconstituer les chaines Mois )
A tester pour voir si ça vous va ... et s'il n'y a pas de bugs qui trainent.

[Edit] Attention, j'ai remplacé IsoWeekNum par WeekNum car ma version XL n'a pas cette fonction, donc faites le remplacement inverse pour retrouver votre IsoWeekNum.
 

Pièces jointes

  • TRAME PLANNING JOUR VBA (2).xlsm
    91 KB · Affichages: 5
Dernière édition:

TAL

XLDnaute Occasionnel
Bonjour,

Tout d'abord Un GRAND MERCI, visiblement cela fonctionne bien.
Je vais effectuer d'autres tests.
Pour afficher l'ensemble du planning, comment puis je faire, il faudrait peut-être que je rajoute un bouton avec l'inscription qui serait "Tout". sur quel ligne dois je modifier le code pour que lorsque j'appuie dessus, c'est tout le planning qui apparait.

Un infiniment "Merci"
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
If suffit de rajouter un bouton nommé Mois13 et modifier la macro avec :
VB:
If Mois = 13 Then                                           ' Si dernier bouton appuyé
    Rows("1:310").EntireRow.Hidden = False                  ' Démasque toutes les lignes
    Exit Sub
End If
 

Pièces jointes

  • TRAME PLANNING JOUR VBA (V2).xlsm
    91.5 KB · Affichages: 5

TAL

XLDnaute Occasionnel
merci beaucoup !

J'en profite, je sais, ce n'est jamais assez !

De ce planning vont découler les feuilles d'émargements, une feuille par mois, je n'arrive pas à trouver comment nommé automatiquement chaque feuilles avec le mois correspondant qui se trouve en "L5" sur chaque feuille d'émargement et en format "MMM" et ça dès que je change de mois et/ou année sur le planning.
Vous auriez une petite formule pour ça !

Merci !!!!
 

TAL

XLDnaute Occasionnel
Bonjour, c’est moi qui suis désolée

Dans ce fichier, je vais créer des onglets d’émargements, une par mois, il y aura sur chaque feuilles, une ligne par jour avec les enseignements, les horaires, des cellules pour signatures…
Le mois concerné sur chaque feuille d’émargement, sera positionné dans la cellule L5.

Je suis en cours de préparation des feuilles d’émargement mais malheureusement, je suis en déplacement et je ne peux pas envoyer cette trame avant la semaine prochaine.

Je vous enverrais, si vous le permettez l’exemple la semaine prochaine

En attendant un grand merci pour tout.
C’est vraiment génial d’avoir des personnes qui accepte d’aider les novices.

Merci
 

TAL

XLDnaute Occasionnel
Bonjour,

Me revoilà
Comme convenu, je vous envoie le document afin de voir si vous avez la possibilité de m'aider pour cette histoire de changement noms d'onglets automatisés en fonction du mois et de l'année sélectionné sur le planning. (Les onglets concernés on la couleur rouge).
Je mis comme exemple, pour pas trop chargé, E-Sept & E-Oct, en sachant que j'aurai un onglet par mois.

Dans l'attente de votre retour
D'avance un Grand Merci
 

Pièces jointes

  • TRAME PLANNING JOUR VBA (2) (2).xlsm
    152.6 KB · Affichages: 5

TAL

XLDnaute Occasionnel
Ce que je recherche c'est renommer automatiquement chaque feuille en fonction d'une cellule.
Se sont des feuilles d'émargements, une par mois. E-Sept; E-Oct; ..... le mois concerné pour chaque feuille ce trouve dans la cellule E5.

Je ne parle pas pour l'onglet "Planning" ni pour l'onglet "Férie" mais bien pour les onglets suivant, ils sont en rouge.

et sans abuser, je voudrais que le mois concerné soit indiqué sur l'onglet au format suivant : "E-Mmm"
E pour Emargement et "Mmm" pour le format du mois.

Je vous ai remis un nouveau fichier un peu plus complet et changer sur le planning le mois et l'année afin de voir la différence avec l'autre.

Aie, j'espère que c'est plus claire
Je croise les doigts !!
 

Pièces jointes

  • TRAME PLANNING JOUR VBA (2) (2).xlsm
    509.2 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Impec. Mais pour le futur lecteur, c'est le bon fichier à mettre en vert, et non votre réponse.

Ceci étant dit, je ne comprends pas votre logique.
Si on modifie les feuilles alors ensuite elles peuvent être renommées, et donc le contenu ne plus correspondre au bon mois ?
Ou est ce qu'à terme, c'est la feuille Planning qui remplira en automatique les autres feuilles ?
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…