Afficher/Maquer des colonnes

Résolu
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   -  
Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voudrais savoir s'il est possible de modifier des colonnes en fonction d'un menu déroulant ?

Je m'explique :

Admettons que j'ai une liste déroulante dans ma colonne A (Permis) avec 2 options (Oui / Non)
Je souhaiterais savoir s'il était possible de faire apparaître ou disparaître des colonnes en fonction du résultat (Si "Oui" dans la colonne A, alors la colonne demande la date d'obtention en B apparaît si "Non" elle reste masquée)

Merci par avance pour vos réponses

PS : Pour le moment il s'agit juste d'une question, je ne sais pas ce qu'il est possible de faire avec VBA, masquer des colonnes (.hide ?) ou les afficher (.unhide ? // .ShowAllData ?)
Si vous pensez que cela est possible je joindrais alors un fichier pour que ce soit plus simple

3 réponses

  1. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
     
    Bonjour,

    J'ai fais exactement cela pour un ami dernièrement, mais à l'aide de cases à cocher et non d'un menu déroulant.

    Je peux vous expliquer en détail si cela vous intéresse.
    0
  2. Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   28
     
    Effectivement je suis très intéressé !

    Je veux bien vos explications, mais je préfère vous prévenir je suis débutant en VBA.

    Je vous joint un exemple de mon fichier afin que ce soit plus facile.

    --> http://cjoint.com/data3/3GmoUjDNZQs.htm

    Merci pour votre aide.
    0
    1. rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
       
      Je vois qu'il y aura un problème...

      SI la ligne Ref1 dit de voir les colonnes L et M
      et qu'en Ref2 on doit les cacher, il y aura un conflit d'interet malheureusement.

      Je ne pense pas que cacher les colonnes soit la meilleure choses a faire.

      Soit 1)
      faire deux feuilles une sans arret et l'autre avec -> simplifie les choses
      Soit 2)
      mettre en place avec la mise en forme conditionnelle les cellules en Noires pour dire qu'elles sont inutiles.

      Désolé.

      Mais peut etre qu'une personne aura une meilleure idée que moi et réussira a cacher vos colonnes !
      0
    2. Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   28
       
      Bonjour,

      Je vois ce que vous voulez dire,
      J'avais également envisagé la 2ème option, je cherchais juste une meilleure solution !

      En tout cas, merci pour votre aide !
      0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Une proposition.
    L'affichage dépend de la ligne sélectionnée, ou bien seulement de la dernière sélection en B (activer l'un ou l'autre choix en mettant en commentaire la ligne de code avec une ')
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Count <> 1 Then Exit Sub
        If Target.Column = 2 And Target.Row > 1 Then masquer (Target)
    End Sub
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Target.Count <> 1 Then Exit Sub
        ' choix 1 : sélection d'une ligne change l'affichage
        If Target.Row > 1 Then masquer (Cells(Target.Row, "B"))
        ' choix 2 : sélection en colonne B change l'affichage
        'If Target.Column = 2 And Target.Row > 1 Then masquer (Target)
    End Sub
    
    Sub masquer(typeRDP As String)
    ' typeRDP="Blessure sans arrêt" : afficher L:M
    ' typeRDP="Blessure avec arrêt" : afficher L:O
    ' typeRDP= autres cas           : masquer L:O
        Range("L:O").EntireColumn.Hidden = True
        Select Case typeRDP
        Case "Blessure sans arrêt"
            Range("L:M").EntireColumn.Hidden = False
        Case "Blessure avec arrêt"
            Range("L:O").EntireColumn.Hidden = False
        Case Else
        End Select
    End Sub

    Clic-droit sur le nom de l'onglet et choisir 'visualiser le code...' pour modifier.
    https://www.cjoint.com/c/CGmpYpFoSul

    eric
    Jamais tu ne répondras à un mp non sollicité...
    Bon, ça c'est fait.
    0
    1. Villette54 Messages postés 300 Date d'inscription   Statut Membre Dernière intervention   28
       
      Bonjour Eric,

      Merci pour ton aide.

      Ta macro fonctionne parfaitement, à première vue je préfère l'option N°1.
      Il m'a fallu un peu de temps pour comprendre comment elle fonctionnait mais maintenant c'est bon !

      Encore merci, et bonne journée.
      0