Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Cacher des colonnes en fonction de la cellule sur laquelle je me trouve

  • Initiateur de la discussion Initiateur de la discussion mickythekiller
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

mickythekiller

Guest
Bonjour,
j'aimerais savoir comment je pourrais ajouter cette fonction (automatique) à ma feuille excel :

Dans un tableau, si je sélectionne une ligne de la première colonne (C), j'aimerais cacher les colonne pour lesquelles la valeur de la cette ligne en question est en dehors des valeurs mini et maxi défini en bout de ligne (CI et CJ)
Et dailleur si je rajoute des colonne devrais je modifier les références aux celulles CI et CJ ?

J'espere avoir été clair, merci par avance de votre aide pour de projet perso
 
Re : Cacher des colonnes en fonction de la cellule sur laquelle je me trouve

Bonsoir,
A vue de nez, à incorporer dans le projet de la feuille en question:

Après avec un exemple ce serait plus parlant ..
En espérant t'avoir donné une piste !

EDIT: le premier "Then" est mal passé il faut le mettre à la suite de la deuxième ligne ainsi que le true après "Cel.EntireColumn.Hidden"
 
Dernière édition:
Re : Cacher des colonnes en fonction de la cellule sur laquelle je me trouve

pas compris ton edit
j'ai du supprimé la dernière parenthèse de la 2eme ligne mais çà me donne rien
 
Re : Cacher des colonnes en fonction de la cellule sur laquelle je me trouve

Bonjour mickythekiller et bienvenu,

J'espère avoir été clair [...]
Pas complètement. Il manque un élément essentiel à la question posée: un fichier!

  • Non pas un fichier complet mais un "petit" fichier extrait de votre fichier de travail en ne conservant que quelques lignes par feuille.
  • Fichier expurgé de toutes données nominatives et confidentielles.
  • Avec une feuille montrant le résultat souhaité et avec les explications qui vont bien.

Pour joindre un fichier:
  • Quand vous rédigez un nouveau message ou quand vous modifiez un de vos messages, passer en mode avancé et cliquez sur 'Gérer les pièces jointes'.
  • Choisissez vos fichiers, cliquez sur envoyer pour les charger, quand ils sont chargés refermez la fenêtre puis cliquez sur 'envoyez...' ou 'enregistrer les changements'.

@A+
 
Re : Cacher des colonnes en fonction de la cellule sur laquelle je me trouve

(re)Bonjour mickythekiller,

Pour ta bienvenue, j'ai construit un tableau exemple.

Si on sélectionne une seule cellule du tableau dans la colonne C, on masque les colonnes du tableau pour les valeurs de la ligne correspondant à la cellule sélectionnée qui sont en dehors des bornes. Les bornes sont situées dans les deux dernières colonnes du tableau.

Si on sélectionne une ou des cellules entièrement en dehors du tableau, on ré-affiche toutes les colonnes du tableau.

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim FinLig As Long, Fincol As Long
Dim xCell As Range, xUnion

Fincol = Range("C3").End(xlToRight).Column
FinLig = Range("c3").End(xlDown).Row
Set xUnion = Nothing

If Target.Column = 3 And Target.Rows.Count = 1 And _
    Target.Row >= 4 And Target.Row <= FinLig Then
  For Each xCell In Range(Cells(Target.Row, 4), Cells(Target.Row, Fincol))
    If xCell.Value < Cells(Target.Row, Fincol - 1) Or xCell.Value > Cells(Target.Row, Fincol) Then
      If xUnion Is Nothing Then
        Set xUnion = xCell
      Else
        Set xUnion = Application.Union(xUnion, xCell)
      End If
    End If
  Next xCell
  Range(Cells(Target.Row, 4), Cells(Target.Row, Fincol)).EntireColumn.Hidden = False
  If Not xUnion Is Nothing Then
    xUnion.EntireColumn.Hidden = True
  End If
ElseIf Application.Intersect(Range(Cells(3, "c"), Cells(FinLig, Fincol)), Target) Is Nothing Then
  Range(Cells(Target.Row, 4), Cells(Target.Row, Fincol)).EntireColumn.Hidden = False
End If

End Sub

NB: On peut insérer des colonnes avant les deux dernières colonnes mais il faut obligatoirement leur attribuer des en-têtes.

Edit : v2 => modif pour réafficher toutes les colonnes du tableau.

Edit: => v3 houps! Une ligne mal placée dans la v2
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…