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

Masquer lignes sous conditions...

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 !

Jerome87

XLDnaute Junior
Bonjour à tous, 🙂

Je vous revient car je me casse pas mal la tête depuis ce midi...

Enfet j'ai besoin de faire un ficher excel un peu comme le principe de Project, mais celui-ci ne correspond pas suffisement à mes besoins. 🙁

Je m'explique : ce fichier regroupe un ensemble de projets, avec des sous-taches.
Lorsque je clique sur le projet dans la colonne A, je souhaite afficher ou non les sous-taches.
J'y arrive, mais seulement à masquer la ligne du dessous. Je souhaite que VB détecte le nombre de ligne de sous taches correspondant au projet, et les masque/affiche. Je sais que c'est possible car la ligne de la colonne A est vide lorsque c'est une sous tache, mais je n'y arrive pas...

Quelqu'un aurait-il l'amabilité de bien vouloir m'aider ??

Merci beaucoup ! 🙂

Voir ci-joint le fichier exemple (peut-etre que cela sera beaucoup plus clair ! )
 

Pièces jointes

Re : Masquer lignes sous conditions...

Bonjour botbot160787,

Voici une proposition à tester :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rg As Range
Dim Limite As Integer   'nombre de lignes maximale avant d'arrêter la boucle

Limite = 200    'à changer selon le nombre de ligne du projet

Application.ScreenUpdating = False
If Target.Column = 1 Then
    Set rg = Target.Offset(1, 0)
    Do Until Not IsEmpty(rg) Or rg.Row = Limite
        Rows(rg.Row).Hidden = Not Rows(rg.Row).Hidden
        Set rg = rg.Offset(1, 0)
    
    Loop
End If
Application.ScreenUpdating = True

End Sub

A+
 
Re : Masquer lignes sous conditions...

Merci beaucoup Grand Chaman Excel !

Ca marche du tonnerre 🙂
J'avais essayé avec une boucle "Do while - loop" mais sans succès...

Encore une fois merci Excel downloads heureusement que vous êtes là...

Bonne soirée.

Edit : pour info si cela peut servir à quelqu'un, j'ai rajouté une condition qui permet de ne pas avoir d'influence si l'on clique sur la 1ère colonne d'un sous projet, de cette façon ça ne sème pas la zizanie sur les lignes d'en dessous...

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim rg As Range
Dim Limite As Integer   'nombre de lignes maximale avant d'arrêter la boucle

Limite = 500    'à changer selon le nombre de ligne du projet

If Not IsEmpty(ActiveCell) Then
Application.ScreenUpdating = False
If Target.Column = 1 Then
    Set rg = Target.Offset(1, 0)
    Do Until Not IsEmpty(rg) Or rg.Row = Limite
        Rows(rg.Row).Hidden = Not Rows(rg.Row).Hidden
        Set rg = rg.Offset(1, 0)
   
    Loop
End If
Application.ScreenUpdating = True
End If
End Sub
 
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

Discussions similaires

Réponses
4
Affichages
538
Réponses
26
Affichages
2 K
Réponses
3
Affichages
621
Réponses
2
Affichages
581
Compte Supprimé 979
C
  • Question Question
XL 2019 Code VBA
Réponses
12
Affichages
891
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…