Masquer colonnes via combobox
Bonjour tout le monde,
Je suis étudiant et nouveau sur ce forum. Dans le cadre de mon stage en entreprise, j'ai réalisé une base de données et je souhaiterais créer une interface afin que celle-ci soit facilement utilisable. La base de données comporte plusieurs groupes de colonnes lié à des paramètres. Afin de comparer 2 paramètres entre eux parmi tous ceux présent dans la base de données, je souhaiterais créer 2 combo-box avec une liste déroulante qui permettront de choisir ces deux paramètres. Ces 2 combo-box doivent me permettre de masquer les colonnes que je n'ai pas choisi. J'ai réussi à le faire sur une première combo-box mais pas sur la deuxième. Je ne sais pas comment lié la combo-box 2 à la combo-box 1.
J'ai le code suivant pour la combo-box 1.
Private Sub ComboBox1_Change()
Dim Colonne As Integer
Application.ScreenUpdating = False
Cells.EntireColumn.Hidden = False
If ComboBox1.Value <> "Tous" Then
For Colonne = 6 To Cells(1, Columns.Count).End(xlToLeft).Column Step 3
If Cells(1, Colonne).Value <> ComboBox1.Value Then Cells(1, Colonne).Resize(, 3).EntireColumn.Hidden = True
Next Colonne
End If
End SubPar souci de confidentialité des données, j'ai créer un fichier simpliste résumant mon problème.
Bonsoir et merci pour vos réponse.
Banzai64:
Après réadaptation du code proposé, cela fonctionne parfaitement!
Voici le code pour ceux que cela intéresseraient:
Private Sub ComboBox1_Change()
Dim Colonne As Integer
Application.ScreenUpdating = False
Cells.EntireColumn.Hidden = False
If ComboBox1.Value <> "Tous" Then
For Colonne = 6 To Cells(1, Columns.Count).End(xlToLeft).Column Step 3
If Cells(1, Colonne).Value <> ComboBox1.Value Then Cells(1, Colonne).Resize(, 3).EntireColumn.Hidden = True
Next Colonne
End If
End Sub
Private Sub ComboBox2_Change()
Dim Colonne As Integer
Application.ScreenUpdating = False
Cells.EntireColumn.Hidden = False
If ComboBox2.Value <> "Tous" And Me.ComboBox1.Value <> "Tous" Then
For Colonne = 6 To Cells(1, Columns.Count).End(xlToLeft).Column Step 3
If Cells(1, Colonne).Value <> ComboBox1.Value And Cells(1, Colonne).Value <> ComboBox2.Value Then Cells(1, Colonne).Resize(, 3).EntireColumn.Hidden = True
Next Colonne
End If
End SubJe ne connaissait pas ce mot clé "me" qui s'est finalement avéré très utile.
biddaddy154:
Le code proposé est tout aussi intéressant, plus simple de conception et qui amène le même résultat!
Encore merci.
Bonne soirée.