Afficher certaine colonnes seulement (Mois)

Michel10ml

XLDnaute Nouveau
Bonjour,

Je cherche une façon de filtrer ou masquer des colones afin d'afficher que certaine colones d'après une validation de donné (menu déroulant A2)

Ex. si je choisi le mois de mai, j'aimerais masquer tout les autres mois, je dois seulement voir la colonne A, B et toutes les colonnes de la ligne 3 = mai
Donc 23 colones = 2 (Titre & Total) + 21 (mai)
Est-ce possible de le faire sans VB
A moins qu'il y est une autre façon simple d'aller à la première colonne de mai avec un menu déroulant?
J'ai déjà essayé de créer 12 feuilles par mois avec un lien direct, mais lorsqu'il y avait un ajout d'employés ou de titre, je devais faire 12 modifications.

J'ai trouvé plein de façon de filtrer les colonnes verticalement, mais aucune information pour filtrer horizontalement!

Merci à l'avance
 

Pièces jointes

  • Afficher_Mois.xlsx
    58.2 KB · Affichages: 20
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Michel10ml

=>Michel10ml (Bienvenue sur le forum)
En préambule: petite question
Quel est ton niveau de maîtrise du VBA?
Car je pense qu'il faudrait passer par une macro
(pour plus de commodité)

PS: Merci pour l'édition du message#1 ;)
 

Staple1600

XLDnaute Barbatruc
Re

J'ai testé sur ton classeur le code ci-dessous
Cela fonctionne
(code à mettre dans le code de la feuille
Clic-droit sur l'onglet-> Visualiser le code)
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Mois = CDate("1/" & [A2])
If Not Target.Address = "$A$2" Then Exit Sub
Application.ScreenUpdating = False
On Error Resume Next
For Each c In Rows(3).SpecialCells(xlCellTypeConstants, 2)
Select Case CDate("1/" & c)
Case Is = Mois
c.EntireColumn.Hidden = False
Case Else
c.EntireColumn.Hidden = True
End Select
Next
End Sub
Je te laisse tester et attends le résultat de ton test ;)
 

Staple1600

XLDnaute Barbatruc
Re

Essaie avec ces modifs
(NB:j'ai rajouté Tout dans la plage nommée Mois)
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, p As Range
Application.ScreenUpdating = False
Set p = Rows(3).SpecialCells(2, 2)
If [A2] = "Tout" Then
  p.EntireColumn.Hidden = False
  Else
  On Error Resume Next
  Mois = CDate("1/" & [A2])
  For Each c In p
    Select Case CDate("1/" & c)
    Case Is = Mois: c.EntireColumn.Hidden = False
    Case Else: c.EntireColumn.Hidden = True
    End Select
  Next
End If
End Sub
 

riton00

XLDnaute Impliqué
Bonsoir Michel10ml, Staple1600 le forum

Autre code + affichage de toutes les colonnes par le menu déroulant du filtre

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$A$2")) Is Nothing Then
Columns("C:IT").Hidden = True
Application.ScreenUpdating = False
Select Case Target
Case "Janv"
    Columns("C:W").Hidden = False
Case "Févr"
    Columns("X:AR").Hidden = False
Case "Mars"
    Columns("AS:BM").Hidden = False
Case "Avr"
    Columns("BN:CH").Hidden = False
Case "Mai"
    Columns("CI:DC").Hidden = False
Case "Juin"
    Columns("DD:DX").Hidden = False
Case "Juill"
    Columns("DY:ES").Hidden = False
Case "Août"
    Columns("ET:FN").Hidden = False
Case "Sept"
    Columns("FO:GI").Hidden = False
Case "Oct"
    Columns("GK:HD").Hidden = False
Case "Nov"
    Columns("HE:HY").Hidden = False
Case "Déc"
    Columns("HZ:IT").Hidden = False
 Case "Affich tout"
    Columns("C:IT").Hidden = False
End Select
End If
Application.ScreenUpdating = True
End Sub

Slts
 

Pièces jointes

  • Afficher_Mois .xlsm
    67.5 KB · Affichages: 19
Dernière édition:

Statistiques des forums

Discussions
312 164
Messages
2 085 875
Membres
103 007
dernier inscrit
salma_hayek