XL 2019 VBA Masquer des Colonnes si condition

dkterreur

XLDnaute Nouveau
Bonjour TLM ;

Je souhaite trouver un Code VBA permettant de Masquer des colonnes si elles ne contiennent pas des mots au choix en utilisant les cases à cocher .

Serait-il possible de m'aider svp ?
je peux cocher plusieurs case à la fois

Case à cocher A
Case à cocher B
Case à cocher C

Par exemple si je coche A ; dans le tableau ne s affiche que les colonnes qui contiennent le mot A , si je coche A et B dans le tableau ne s'affiche que les colonnes qui contiennent A et B...


ABCABCABC
 

Pièces jointes

  • test.xlsx
    13.3 KB · Affichages: 7
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir @dkterreur,
Bienvenue sur XLD :),

Notez que j'ai retiré les cases à cocher pour les remplacer par des cases ou cellules Excel beaucoup plus faciles à gérer.

Les codes se situent :
  • dans le module associé à la feuille nommée "Feuil5"
  • dans le module associé à ThisWorkbook

Module de Feuil5:
Remarquez l'emploi du mot clef Public à la place de ce que propose par défaut VBA qui est Private
VB:
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x
   If Target.Count = 1 Then
      If Target.Column = 3 Then
         If Target.Row >= 7 And Target.Row <= 11 Then
            Application.ScreenUpdating = False
            If Target = "" Then Target = "x" Else Target = ""
            For Each x In Range("e7:s7")
               If x.Value = Target.Offset(, -1) Then x.EntireColumn.Hidden = Target <> "x"
            Next x
            Target.Offset(, -1).Select
         End If
      End If
   End If
End Sub

Module de ThisWorkbook:
VB:
Private Sub Workbook_Open()
Dim x
   Application.ScreenUpdating = False
   Sheets("Feuil5").Select
   For Each x In Range("c7:c11"): Worksheets("Feuil5").Worksheet_SelectionChange x: Next x
End Sub
 

Pièces jointes

  • dkterreur -masquer colonnes- v1.xlsm
    19.5 KB · Affichages: 17

dkterreur

XLDnaute Nouveau
Bonsoir @dkterreur,
Bienvenue sur XLD :),

Notez que j'ai retiré les cases à cocher pour les remplacer par des cases ou cellules Excel beaucoup plus faciles à gérer.

Les codes se situent :
  • dans le module associé à la feuille nommée "Feuil5"
  • dans le module associé à ThisWorkbook

Module de Feuil5:
Remarquez l'emploi du mot clef Public à la place de ce que propose par défaut VBA qui est Private
VB:
Public Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim x
   If Target.Count = 1 Then
      If Target.Column = 3 Then
         If Target.Row >= 7 And Target.Row <= 11 Then
            Application.ScreenUpdating = False
            If Target = "" Then Target = "x" Else Target = ""
            For Each x In Range("e7:s7")
               If x.Value = Target.Offset(, -1) Then x.EntireColumn.Hidden = Target <> "x"
            Next x
            Target.Offset(, -1).Select
         End If
      End If
   End If
End Sub

Module de ThisWorkbook:
VB:
Private Sub Workbook_Open()
Dim x
   Application.ScreenUpdating = False
   Sheets("Feuil5").Select
   For Each x In Range("c7:c11"): Worksheets("Feuil5").Worksheet_SelectionChange x: Next x
End Sub
je n arrive pas à telecharger le fichier

Oups ! Quelque chose ne va pas.​


La page demandée est introuvable.
 

Discussions similaires

Réponses
2
Affichages
152
Réponses
10
Affichages
417

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa