Masquer des colonnes par rapport a une valeur d'une liste

Bonjour à tous,

J'aimerais savoir comment faire un genre de tri automatique mais pas en vertical mais en horizontal.

En fait j'ai un planning de 15 personnes sur 5 jours et je souhaite pouvoir voir que le lundi de toutes les personnes ou le mardi etc ... ou toutes la semaine (afficher tout) (liste en A2)

Avoir aussi la possibilité de faire la même chose mais sur un seul employé ou sur tous ( afin de pouvoir fournir des planning au jour feuille de route) liste en A1

Le fichier est joint c'est plus parlant ....

Grand merci d'avance

Seb

Bonjour,

à voir :

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dercol As Long, col As Long, employe As String, ok As Boolean
    If Target.Column > 1 Then Exit Sub
    Application.ScreenUpdating = False
    Columns.Hidden = False
    dercol = Cells(4, Columns.Count).End(xlToLeft).Column
    For col = 2 To dercol
        employe = Cells(3, col - (col - 2) Mod 5)
        ok = [A1] = "toute l'équipe" Or [A1] = employe
        ok = ok And ([A2] = "semaine entière" Or [A2] = Cells(4, col))
        Columns(col).Hidden = Not ok
    Next col
End Sub

Peut-être faudrait-il ajouter le forçage semaine entière si tu sélectionnes un employé, et toute l'équipe si tu sélectionnes un jour (?)

eric

33classeur2.xlsm (22.01 Ko)

Merci eriic,

Bon je ne sais pas si cela marche, tu va dire que je suis une quiche ...je suis un peu perdu avec l'office 2013

Je n'ai pas acces a la création des macro dans affichage ...macro

donc ce qu j'ai fait c'est enregistrer une macro et arreter l'enregistrement pour pouvoir la modifier et incorporer ton code. cela donne :

Sub Macro1()

'

' Macro1 Macro

'

Private Sub Worksheet_Change(ByVal Target As Range)

Dim dercol As Long, col As Long, employe As String, ok As Boolean

If Target.Column > 1 Then Exit Sub

Application.ScreenUpdating = False

Columns.Hidden = False

dercol = Cells(4, Columns.Count).End(xlToLeft).Column

For col = 2 To dercol

employe = Cells(3, col - (col - 2) Mod 5)

ok = [A1] = "toute l'équipe" Or [A1] = employe

ok = ok And ([A2] = "semaine entière" Or [A2] = Cells(4, col))

Columns(col).Hidden = Not ok

Next col

'

End Sub

Et la lorsque j’exécute la macro il me dit : "End sub attendue" et la premiere ligne est en jaune....

grrr ... j'ai essayer de mettre le code a plusieurs endroits mais sans succes ....trop nul quoi...

Bonjour,

La macro doit être mise dans le module de la feuille et non dans un module standard.

Et tu as 2 sub, il faut tout enlever de ta macro enregistrée, y compris les 4 premières lignes.

Fais un clic-droit sur le nom d'onglet de ta feuille puis 'visualiser le code' pour être dans le bon module, colle le code.

eric

Youpi !!!!! ++++ qu'un grand merci !!!

ça marche, je comprend pas le code mais ca marche ...

tu donnes pas des cours

Bien à toi

Séb

Rechercher des sujets similaires à "masquer colonnes rapport valeur liste"