Masquer des colonnes semaine par semaine en copiant / collant le format

Bonjour à tous,

Je vous contacte car je n’arrive pas à réaliser ce que je souhaite dans un fichier Excel
Le but de ce fichier est de suivre des indicateurs quotidien, avec un affichage à la semaine
Ces informations sont sur le plan horizontal
J’aimerais qu’une fois la semaine écoulée, une nouvelle semaine vierge apparaisse dans le même format, mais que la semaine d’avant soit masquée (pour n’avoir à l’affichage que la semaine en cours)

J’ai essayé de mettre un filtre horizontal pour filtrer sur la ligne 3 et choisir ma « Working week » en cours, mais cela ne marche pas :frowning: (ici j’ai mis 3 semaines pour exemple mais dans mon fichier réel il y en aura 53)

Affichage_choix_semaine.xlsx (24,0 Ko)

Si quelqu’un aurait une solution je suis preneuse
Je joins le fichier anonymisé en PJ

J’espère avoir été suffisamment claire
Merci d’avance pour votre aide !

sans VBA sera difficile
un essai, quand vous ouvrez le fichier, on cherche le numéro de la semaine (ISO) et cache les autres semaines.
Maintenant on est semaine 52 !
Affichage_choix_semaine.xlsm (30,7 Ko)

Merci Cow18 (et très beau chat !)
Ca me semble pas mal, il faudra voir ce que ça dit la semaine prochaine, car j’avais renseigné à partir de CW01, donc dans l’exemple le CW52 a été modifié à la main par vos soins ?
Je ne vois plus apparaître CW01 en « unhidant » les cellules

Autre question : la macro est-elle directement intégrée au fichier ?
Si mes collègues l’ouvrent, fonctionnera-t-elle ?
Je n’y connais pas grand chose en VBA :crazy_face:

oui, j’ai modifié à la main ce CW52, parce qu’il n’y avaient que les 3 premieres semaines. Dans votre vrai fichier (avec toutes les 52 semaines), la macro montrera aujourd’hui la semaine 52, disons les colonnes 258:262 (environ).
La semaine prochaine, c’est iso-semaine 1 et la macro montrera les colonnes D:M…
Oui, vous collègues, avec un copie de ce fichier, cela fonctionnera aussi pour eux. Au moment où ils ouvrent le fichier, la macro fait son travail.
Si la semaine est introuvable, toutes les colonnes sont visible.

1 « J'aime »

C’est parfait merci beaucoup !
Je vais voir comment cela évolue :wink:
Comment faire pour que la macro soit liée à un fichier ?
Car j’ai trois autres fichiers pour lesquels je devrais appliquer la même logique - seule la mise en forme changera car les indicateurs seront différents, comme il s’agit d’autres équipes qui auront leur propre tableau de bord :smile:

Affichage_choix_semaine.xlsm (100,2 Ko)
voilà le fichier avec les 52 semaines en commençant par semaine 1

Bonjour,

J’ai l’impression que cela ne fonctionne pas à 100%
@taz067 , le fichier affiche toutes les semaines quand je l’ouvre
Dois-je faire une manipulation spéciale ?

Autres questions @Cow18 :

  1. Comment faire pour que la macro soit liée à un fichier ?
    Car j’ai trois autres fichiers pour lesquels je devrais appliquer la même logique - seule la mise en forme changera car les indicateurs seront différents, comme il s’agit d’autres équipes qui auront leur propre tableau de bord :smile:
  2. Comment faire pour que la macro se lance « automatiquement » ? Ou dois-je passer par l’onglet développeur → macro → run ?
    Il faut que je sache comment procéder pour expliquer la manip aux équipes si besoin

Merci pour vos retours !

Hello,
Soit, il faut peut etre adapté le code VBA pour le numero de semaine j’ai appliquer un format personnalisé, ou alors, c’’est parce que la feuille commence a semaine 01 et comme ca ne correspond pas a la semaine en cours ca ne la détecte pas encore
Sinon pour lié la macro a un autre fichier il suffit de copié le code ou le module et le mettre dans le fichier de destination, mais la structure des fichiers doit etre la même, sinon il faudra adapté le code VBA

bonjour,
je ne connais pas votre niveau de VBA, j’éspère que ceci suffit

Dans l’editeur VBA, vous trouvez « Thisworkbook » et là-dedans on a cette macro, qui est lancée au moment où on ouvre le fichier. Donc cette partie est automatique. Si le fichier est ouvert le dimanche soir et on passe minuit vers la semaine suivante, pour le moment rien est prévu pour que les semaines s’adaptent. Mais, je ne pense pas que cela sera le cas chez vous ??? A tout moment, on peut lancer la macro « MontrerSmaineActuelle » avec ALT+F8.

Private Sub Workbook_Open()
     MontrerSmaineActuelle
End Sub

Aussi avec ce Alt+F8, on peut modifier la macro, mais j’ai déplacé les variables de la macro vers les 3 premières lignes du module. Vous verrez là le nom de la feuille, la ligne qui contient les numéros des semaines et la premiere colonne. Je pense que cela suffira pour adapter aux autres fichiers.

Donc pour ces autres fichiers, vous copiez le contenu de « thisworkbook » vers cet autre fichier et vous copiez aussi le module1 vers cet autre fichier + eventuellement modifier un ou plusieurs paramètres.

Affichage_choix_semaine.xlsm (31,3 Ko)

1 « J'aime »

Pour ce format personnalisé de @TAZ067, j’ai ajouté un 4eme paramètre au début du module, alors vous avez le choix
Affichage_choix_semaine.xlsm (31,7 Ko)

Merci pour votre réactivité !!
Je vais regarder cela et reviendrai vers vous :smiley:
Problablement seulement d’ici demain car cette après-midi est chargée

Bonne journée à tous :smiling_face:

1 « J'aime »

Bonjour et bonne dernière journée 2024 à tous :slight_smile:

@Cow18 mon niveau VBA est proche du zéro, je sais enregistrer des macros via le bouton « record » et faire des ajustements mineurs une fois le code écrit tout seul :stuck_out_tongue:
Mais je pense avoir compris vos explications pour adapter votre code à mes autres fichiers (si ce n’est pas le cas je reposterai un message)

Concernant les cellules masquées, elles ne le sont que jusqu’aux colonnes « NK », alors que j’en ai qui courent jusqu’à « TM »
Est-ce lié à ceci ?
.Cells(Ligne, Colonne).Resize(, 53 * 7).EntireColumn.Hidden = True
Que sigifnie la formule 53 * 7 ?

Merci par avance !

colonne NK = colonne 375
53 semaines * 7 jours par semaine = 371 colonnes et si la première semaine commence en colonne C (=3eme), cela veut dire 3+371-1 = 373 comme dernière colonne, écart de 2, Il y a des colonnes supplémentaire quelque part ?
Sinon, vous pouvez exagérer, remplacez « .Resize(, 53 * 7) » par « .Resize(, 400) », comme ça vous avez 400 colonnes à cacher/montrer, presque 30 colonnes supplémentaires (attention, n’oubliez pas la virgule avant ce chiffre)

1 « J'aime »

c’est parfait, ça fonctionne à merveille !
un grand merci :pray:
dès jeudi j’appliquerai à mes autres fichiers voir si j’arrive à adapter le tout et vous tiendrai au courant !
encore merci et un très bon réveillon !

1 « J'aime »

bonjour à tous et meilleurs voeux 2025 !

j’ai réussi à adapter la formule à mes autres fichiers, et je crois même avoir pu adapter le code pour un format mensuel - ça a l’air de fonctionner, je croise les doigts car février n’arrive pas tout de suite pour vérifier :stuck_out_tongue:

merci beaucoup @Cow18 et @taz067 pour le temps et l’aide accordés, vous m’avez ôté une belle épine du pied ! :pray:

très bonne journée à tous

1 « J'aime »