Masquer/ Afficher colonnes via une liste déroulante de choix.[Résolu]

matieu

XLDnaute Nouveau
Bonjour a tous,

Dans le cadre d'un projet étudiant, j'ai besoin de créer une interface via Excel 2010.

Cette interface doit pouvoir afficher ou cacher des colonnes selon le choix d'une cellule.

Je m'explique. J'ai une cellule ou je peut selon une liste déroulante choisir le nom d'une association.

J'ai des renseignements sur chaque association modifiables, est présent sur des colonnes différentes. Sachant que certaines infos sont communes à plusieurs assos.

J'aimerais selon le choix de l'association dans ma cellule de référence. Faire apparaître les infos de l'association en référence et masquer les colonnes d'informations des autres associations.

C'est la première macro que j'essai de faire donc c'est pas évident.
Voici ce que j'avais écrit dans ma macro:

Sub Affichageinfo()
If Cells(2, b) = "Assos1" Or "Assos2" Or "Assos3" Then
Range("p:ak").EntireColumn.Hidden = True
If Cells(2, b) = "Assos4" Or "Assos5" Or "Assos6" Then
Range("aa;aj").EntireColumn.Hidden = True
If Cells(2, b) = "Assos7" Or "Assos8" Then
Range("d:z").EntireColumn.Hidden = True
End If
End Sub

Je vous remercie d'avance pour vos réponses!!!!!
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Masquer/ Afficher colonnes via une liste déroulante de choix.

bonjour

cells attend 2 nombres et non pas un nombre et une lettre
c'est donc cells(2,2)
ensuite excel ne comprends pas
If Cells(2, b) = "Assos1" Or "Assos2" Or "Assos3"
il est bête il faut tout lui dire à chaque fois :
If Cells(2, b) = "Assos1" Or Cells(2, b) "Assos2" Or Cells(2, b) "Assos3"
(idem bien sur pour la suite)
 

matieu

XLDnaute Nouveau
Re : Masquer/ Afficher colonnes via une liste déroulante de choix.

Merci pour la réponse.

Cependant Quoi que je choisisse dans ma cellule 2.2, il ne tient pas en compte mon choix. C'est toujours les mêmes colones qui sont affichées et qui sont masquées!!!
 
Dernière édition:

matieu

XLDnaute Nouveau
Re : Masquer/ Afficher colonnes via une liste déroulante de choix.

C'est que les informations de mon classeur sont confidentiel.

En reprenant mon exemple des associations qui est juste un exemple.
Quand je choisit Assos 1 dans ma cellule B2, la macro cache bien les colonnes de p à ak.
De même quand je choisis Assos 2 et Assos 3.
Cependant si je choisis Assos 4, la macro devrait cacher les colonnes de d à o puis de aa à ak et n'affichait que les colonnes p à z
Ce qui n'est pas le cas car j'ai toujours les colonnes de p à ak caché et les collones de d à o visibles.

Désolé si je n'ai pas été très explicite.
 

Misange

XLDnaute Barbatruc
Re : Masquer/ Afficher colonnes via une liste déroulante de choix.

Il est facile de construire un classeur exemple qui ne soit pas confidentiel mais ce n'est pas au répondeur de prendre le temps de le faire.
Sans voir au moins l'ensemble de la macro "qui ne marche pas", la boule de cristal a des vapeurs ce qui la rend moins précise.
 

Si...

XLDnaute Barbatruc
Re : Masquer/ Afficher colonnes via une liste déroulante de choix.

salut

pour aller plus vite, une évènementielle à placer dans le Module de la feuille
Code:
Private Sub Worksheet_Change(ByVal R As Range)
  If R.Address <> "$B$2" Then Exit Sub
    Select Case R.Value
    Case "Assos 1", "Assos 2", "Assos 3"
      Range("G:R").EntireColumn.Hidden = 1
      Range("F:F").EntireColumn.Hidden = 0
    Case "Assos 4", "Assos 5", "Assos 6"
      Range("F:F,J:N").EntireColumn.Hidden = 1
      Range("I:I").EntireColumn.Hidden = 0
    Case "Assos 7", "Assos 8"
      Range("F:I").EntireColumn.Hidden = 1
      Range("J:K").EntireColumn.Hidden = 0
  End Select
End Sub
 

Misange

XLDnaute Barbatruc
Re : Masquer/ Afficher colonnes via une liste déroulante de choix.[Résolu]

Ah trop tard :)
j'allais proposer la même solution que Si ... (que je salue au passage)
bon comme j'ai fait l'exemple le voici
le code est dans une macro événementielle dans la feuille
 

Pièces jointes

  • Copie de Essai.xlsm
    13.9 KB · Affichages: 396
  • Copie de Essai.xlsm
    13.9 KB · Affichages: 419
  • Copie de Essai.xlsm
    13.9 KB · Affichages: 489

Le double cheese

XLDnaute Occasionnel
Re : Masquer/ Afficher colonnes via une liste déroulante de choix.

Bonjour à tous,

Ce sujet m'interesse beaucoup !

J'aurais une question pour une alternative: Masquer/ Afficher colonnes via un filtre.
J'ai exactement la même problématique que matieu

J'ai essayé de modifier la macro en ajoutant:

ActiveSheet.Range("$A$4:$A$12").AutoFilter Field:=1, Criteria1:="Assos 1"
(c'est le script lorsqu'on choisi assos 1 dans le filtre)

Mais je ne sais absolument pas comment intégrer ce script à la macro (avec IF avec TRUE ???)
Je vous joint le même fichier mais avec un filtre à la place d'une liste.
 

Pièces jointes

  • Avec filtre.xlsm
    15.3 KB · Affichages: 240
Dernière édition:

Le double cheese

XLDnaute Occasionnel
Re : Masquer/ Afficher colonnes via une liste déroulante de choix.[Résolu]

Bonjour,

Oui il est possible de le faire avec un bouton, mais je vous conseil d’ouvrir une nouvelle discussion sur le forum. (car celle-ci est déjà signalé comme étant résolue).
N'oubliez pas d'ajouter un petit fichier en exemple.
 

Selmane Sylvain

XLDnaute Nouveau
Bonjour à tous,

Même question, mais pour un onglet nommé "Base" je souhaiterais que si dans la cellule de référence apparaît "€" ou "EUR" les colonnes D, I et N ne s'affichent plus.
Et inversement quand cette cellule co
ntient autre chose que "€" ou "EUR" les colonnes masquées s'affichent à nouveau.


  • B1 est la cellule où s'affiche € ou EUR
  • Le code de recherche qui donne sa valeur à la cellule est :=RECHERCHEV(A2;Devises!A2: D165;B1;FAUX)
  • A:O l'ensemble des différentes colonnes.
voici le code où est l'erreur ? l'utilisation de "case" n'est-elle pas nécessaire ici ?
:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim IsoSymbole As String

If Not Intersect(Target, Range("B1")) Is Nothing Then

IsoSymbole = Range("B1").Value
Range("A:O").EntireColumn.Hidden = False

Select Case IsoSymbole
Case "€", "EUR"
Range("A:C,E:H,J:M,O:O").EntireColumn.Hidden = False
Range("D: D,I:I,N:N").EntireColumn.Hidden = True
End Select

End If
End Sub

Merci d'avance de vos réponses.Sylvain
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 184
Messages
2 086 007
Membres
103 088
dernier inscrit
Psodam