Afficher/Masquer Colonnes en fonction de la semaine choisie : VBA/Excel

Bonjour,

J'ai besoin de vous. Je suis actuellement en train de réaliser un fichier Excel afin d'établir un planning d'exploitation pour les agents de stations d'épurations.

Le fichier excel est joint pour mieux comprendre et résoudre le problème.

Voici quelques informations essentielles sur le fichier :

Il est composé d'un premier tableau d'information, de la colonne A à E. Ensuite, les colonnes F à BF correspondent aux semaines de l'année (S1, S2,..., S52, ANNUEL).

apercu tableau

Je souhaiterai afficher ou masquer ces colonnes, en fonction de la semaine voulue. Elle sera renseigner sur la cellule B1. Par exemple : si l'on renseigne "S11" sur la cellule B1, toutes les colonnes sont alors masquées (de F à BF), sauf la colonne correspondante à la semaine 11 (S11). Il faudrait alors vérifier que le texte entrée correspondent au nom de la colonne pour savoir si cette dernière est affichée ou pas.

Ensuite, le technicien aura simplement à effectuer un filtre sur la colonne de la semaine choisie, pour que le tableau n'affiche que les tâches d'exploitations à effectuer la semaine choisie (symbolisé par la présence ou non de "x"). Enfin, j'effectuerai une macro permettant d'imprimer le fichier sur une feuille A4 recto verso.

Malheureusement, j'essaie de résoudre ce problème depuis un moment mais je ne maîtrise pas assez VBA pour résoudre ce problème tout seul. Quelqu'un veut-il bien m'aider?

Merci d'avance de votre aide!

Version EXCEL : 2010

Bonjour,

Un essai ...

Dans la feuille "Tableau de bord" ...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim X As Byte

    If Target.Count > 1 Then Exit Sub
    If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub

    Range(Columns(6), Columns(58)).EntireColumn.Hidden = False  ' < affiche les colonnes

    X = Right(Range("B1"), Len(Range("B1")) - 1) + 5    ' détermine la semaine

    If X > 6 Then Range(Columns(6), Columns(X - 1)).EntireColumn.Hidden = True
    Range(Columns(X + 1), Columns(58)).EntireColumn.Hidden = True
End Sub

ric

Bonjour Ric,

Super, merci de ton aide ! C'est exactement ce que je voulais faire.

Bonne journée !

ric

Super Ric et merci Mehdi34,

J'ai une problématique similaire, je voudrais afficher les 4 ou 5 dernières semaines

Ric pourrais-je t'envoyer mon fichier en privé car il contient des informations confidentielles ainsi que d'autres macro, difficile de répliquer ?

Bonjour à tous,

@dani0388 ... Oui, je veux bien regarder ton fichier.

ric

Rechercher des sujets similaires à "afficher masquer colonnes fonction semaine choisie vba"