Masquage automatique de colonnes

Y compris Power BI, Power Query et toute autre question en lien avec Excel
g
gELL59
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 20 mai 2016
Version d'Excel : 2077

Message par gELL59 » 27 septembre 2019, 07:38

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 :)
Test Masquage.xlsx
(9.45 Kio) Téléchargé 5 fois
n
njhub
Membre impliqué
Membre impliqué
Messages : 1'304
Appréciations reçues : 70
Inscrit le : 5 juin 2017
Version de Calc : 6.2.8.2 FR-YT

Message par njhub » 27 septembre 2019, 07:56

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 ;;)
gELL59-Test Masquage.xlsx
(7.64 Kio) Téléchargé 4 fois
g
gELL59
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 20 mai 2016
Version d'Excel : 2077

Message par gELL59 » 30 septembre 2019, 07:32

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 :)
Avatar du membre
xorsankukai
Membre impliqué
Membre impliqué
Messages : 1'876
Appréciations reçues : 193
Inscrit le : 7 octobre 2014
Version d'Excel : 2010 FR

Message par xorsankukai » 30 septembre 2019, 10:30

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

Copie de Test Masquage.xlsm
(17.43 Kio) Téléchargé 3 fois
Cordialement,
xorsankukai

La connaissance, c’est partager le savoir qui nous fait grandir.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message