Masquage automatique de colonnes

Bonjour à tous,

Je souhaiterai pouvoir masquer des colonnes de manière "automatique" en fonction d'une donnée indiqué dans une cellule.

Mon but est de simuler un filtre mais sur des colonnes afin de n'afficher que certaines colonnes.

J'ai mis un exemple en pièce jointe ( en onglet 2 le résultat attendu ).

Le but serai d'indiquer 2019 dans une cellule par exemple et de masquer ( pas de supprimer ) toutes les colonnes qui ne concerne pas l'année 2019.

Je suppose qu'il faut utiliser du VBA pour faire cela et que ce n'est pas possible avec les fonctions de base d'Excel.

Merci d'avance pour votre aide

bonjour gELL59,

Voyez si le fichier joint répond à vos attentes, au lieu de masquer les colonnes, on transcrit ce qui est sélectionné dans la cellule L de l'onglet Resultat.

Corrigez vos données qui contiennent deux catégorie C pour 2020

Merci de votre réponse ,

Malheureusement mon but est vraiment de "masquer" les colonnes dans la même feuille ( un peu comme un filtre ) et de pouvoir "démasquer" par la suite.

Merci quand même pour votre réponse enrichissante

Bonjour gELL59, njhub, le forum,

Un essai.....(pour tout afficher, il faut effacer L1)

Private Sub Worksheet_Change(ByVal Target As Range)

 Dim i As Integer, derncol As Integer

  Application.ScreenUpdating = False           'évite le scintillement de l'écran

  With Sheets("Données")                       'on agit sur la feuille "Données"
   derncol = .Cells(2, Cells.Columns.Count).End(xlToLeft).Column   'dernière colonne en fonction de la ligne 2
    If Not Application.Intersect(Target, Range("L1")) Is Nothing Then    'à chaque modif.sur la cellule L1
      cancel = True
      Columns.EntireColumn.Hidden = False
     For i = derncol To 2 Step -1               'boucle de la dernnière colonne à la colonne 2
      If .Cells(2, i) <> .Cells(1, 12) Then     'si valeur cellule <> L1
        Columns(i).EntireColumn.Hidden = True   'on masque
      Else                                      'sinon
        Columns(i).EntireColumn.Hidden = False  'on affiche
      End If                                    'fin de la condition
     Next i                                     'fin de la boucle
      If .Cells(1, 12) Like "" Then Columns.EntireColumn.Hidden = False   'si L1 est vide, on affiche tout
    End If
  End With

  Application.ScreenUpdating = True

End Sub

Cordialement,

Rechercher des sujets similaires à "masquage automatique colonnes"