Masquer ligne automatiquement même en présence de filtre

nanou0186

XLDnaute Nouveau
Bonjour à tous,

Sur mon tableau excel (2010), j'ai une ligne "mère" qui me permet de générer les lignes filles.
Cette ligne mère contient toutes les formules/mise en forme conditionnelles qui se répercutent sur les lignes filles lorsqu'elle celles-ci sont créées.
Je souhaite masquer tout le temps la ligne mère pour ne pas qu'elle soit modifiées par erreur par les personnes utilisant le fichier
J'y arrive sauf que quand on fait un filtre sur une colonne et qu'on le retire, la ligne mère réapparaît.
Pouvez vous m'aider ?

D'avance merci bcp pour votre aide

Nanou
 

Pièces jointes

  • draft.xlsm
    28.3 KB · Affichages: 30
  • draft.xlsm
    28.3 KB · Affichages: 31

chris

XLDnaute Barbatruc
Re : Masquer ligne automatiquement même en présence de filtre

Bonjour

Ajouter une colonne qui repère les lignes "mères".

Sachant que le filtrage défiltrage n'est pas un évènement Excel, il faut ensuite trouver une solution pour détecter le défiltrage.
Une fonction perso volatile calculant l'écart entre le nombre de lignes et le nombres de lignes visibles sur la base de cette colonne, pourrait sans doute déclencher l'événement Caculate te permettant de remasquer ces lignes...
 

thebenoit59

XLDnaute Accro
Re : Masquer ligne automatiquement même en présence de filtre

Bonjour Nanou, bonjour Chris.
Je te propose déjà de simplifier ton code pour masquer les lignes mères :

Sub MASQUER()
Dim DerLig As Long

' Déterminer la dernière ligne remplie en B
DerLig = Cells(Rows.Count, 2).End(xlUp).Row

' On analyse toutes les lignes depuis la dernière à la ligne statut + 1
For lignes = DerLig To 6 Step -1
If Rows(lignes).Find("*", LookIn:=xlValues) Is Nothing Then Rows(lignes).Hidden = True
Next lignes

End Sub

Pour la suite, il faut suivre les instructions de Chris :)
 

nanou0186

XLDnaute Nouveau
Re : Masquer ligne automatiquement même en présence de filtre

Merci à vous.
Chris, je sèche complètement (je suis très novice). j'ai essayé de faire un évènement calculate mais il y avait que des erreurs.
Aurais tu une proposition par apport au fichier que j'ai envoyé ?

Thebenoit59. merci beaucoup. je vais le changer
 

nanou0186

XLDnaute Nouveau
Re : Masquer ligne automatiquement même en présence de filtre

Thebenoit59 : je viens de tester. si je crééé 1 ligne et que je fais masquer les formules, il me masque ma ligne mère et ma ligne fille que je viens de créér. est ce pmossible que ça me masque uniquement la ligne 6 ?
 

nanou0186

XLDnaute Nouveau
Re : Masquer ligne automatiquement même en présence de filtre

Bonjour
Je me permets de relancer.
Avez vous des propositions pour masquer une ligne "mère" et faire en sorte qu'elle reste masquer même lorsqu'on retire les filtres?
Je vous remercie par avance
Encore merci pour votre aide
 

chris

XLDnaute Barbatruc
Re : Masquer ligne automatiquement même en présence de filtre

Bonjour

J'ai tenté pour constater que finalement le calcul
Code:
SpecialCells(xlCellTypeVisible).Cells.Count
est bugué dans Excel.
Après avoir ajouté une colonne Mère dans le tableau avec des X ou * sur les lignes concernées, il suffit de placer une formule
Code:
=SOUS.TOTAL(3;CCRollingTable[Mère])
par exemple en S1 puis dans le module de la feuille
Code:
Private Sub Worksheet_Calculate()
    If [S1] > 0 Then
        ListObjects("CCRollingTable").Range.AutoFilter Field:=1, Criteria1:="="
    End If
End Sub

Edit : fichier ajouté
 

Pièces jointes

  • draft2.xlsm
    30.7 KB · Affichages: 36
Dernière édition:

chris

XLDnaute Barbatruc
Re : Masquer ligne automatiquement même en présence de filtre

Bonjour

Je n'ai pas touché à tes macros.
Il y a dans Excel un boutons qui annule le filtre : entonnoir avec la croix.

Dans la mesure où le code ajouté refiltre automatiquement les lignes mères, il faut le mettre en commentaires ou passer en calcul manuel si tu veux les voir.
 

nanou0186

XLDnaute Nouveau
Re : Masquer ligne automatiquement même en présence de filtre

j'arrive pas à l'afficher. il ne me le prend pas quand je retire l'entonnoir.
si je comprends bien, la macro fonctionne comme suit :
dès que je coches * ou x dans la colonne mère, la macro se lance directe, et la ligne est maquée ?
Si c'est bien ça, est ce possible de faire une macro, en appuyant sur un bouton pour afficher les lignes masquées de la ligne mère ?
d'avance merci encore pour ton aide
 

chris

XLDnaute Barbatruc
Re : Masquer ligne automatiquement même en présence de filtre

RE

Dès que la cellule S1 se recalcule, les lignes ayant une valeur en colonne Mère se masquent.
Donc que ce soit une modification de valeur (ajout, suppression) ou un filtre/défiltre cela se calcule

Comme déjà dit : pour tout voir soit tu mets tout le code de l'onglet en commentaire soit tu passes en calcul manuel avent d'afficher tout.

Cette dernière option est plus simple et ne nécessite pas de macro.
 

nanou0186

XLDnaute Nouveau
Re : Masquer ligne automatiquement même en présence de filtre

Tu vas penser que je suis un boulet, mais je ne comprends pas repasser en manuel. Pour voir la ligne qui est masquée, je suis obligée de supprimer la formule dans S1, je n'y arrives autrement.
Ca sera plus simple pour moi, si j'avais un bouton qui me permet d'afficher ma ligne masquée
 

Discussions similaires

Statistiques des forums

Discussions
315 080
Messages
2 116 010
Membres
112 636
dernier inscrit
fred 1969