Masquer lignes automatiquement dans plusieurs feuilles
Résolu
Stephxx
-
Stephxx Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Stephxx Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai créé un classeur de deux pages. La premiere comporte en colonne A une liste d'articles avec leurs paramètres en col.B et C. Les utilisateurs du fichier appliquent leurs filtres sur les colonnes B et C pour ne conserver que certain articles. Un certain nombre d'articles, c'est à dire de lignes sont donc masquées.
je souhaiterais qu'apparaissent en colonne A de la page 2 les mêmes articles qui sont affichés en colonne A de la feuille1 donc toutes les lignes qui ne sont pas masquées. Une idée
Détail:
Feuille1
A B C
ligne1 Article
ligne2 toto
ligne4 tata
ligne9 tonton
les lignes 3, 5, 6, 7, 8 sont donc masqué par des filtres sur les colonnes B et C.
Je souhaite obtenir une feuille 2 avec:
Feuille2
A
ligne1 Article
ligne2 toto
ligne3 tata
ligne4 tonton
De préférence avec des formules, plus simple pour mes utilisateurs. Avec une macro, il faudrait qu'elle se déclenche dès qu'un filtre est appliqué mais aussi si un utilisateurs cache à la main une ligne dans la feuille 1.
Merci d'avance.
J'ai créé un classeur de deux pages. La premiere comporte en colonne A une liste d'articles avec leurs paramètres en col.B et C. Les utilisateurs du fichier appliquent leurs filtres sur les colonnes B et C pour ne conserver que certain articles. Un certain nombre d'articles, c'est à dire de lignes sont donc masquées.
je souhaiterais qu'apparaissent en colonne A de la page 2 les mêmes articles qui sont affichés en colonne A de la feuille1 donc toutes les lignes qui ne sont pas masquées. Une idée
Détail:
Feuille1
A B C
ligne1 Article
ligne2 toto
ligne4 tata
ligne9 tonton
les lignes 3, 5, 6, 7, 8 sont donc masqué par des filtres sur les colonnes B et C.
Je souhaite obtenir une feuille 2 avec:
Feuille2
A
ligne1 Article
ligne2 toto
ligne3 tata
ligne4 tonton
De préférence avec des formules, plus simple pour mes utilisateurs. Avec une macro, il faudrait qu'elle se déclenche dès qu'un filtre est appliqué mais aussi si un utilisateurs cache à la main une ligne dans la feuille 1.
Merci d'avance.
A voir également:
- Masquer lignes automatiquement dans plusieurs feuilles
- Comment faire un livret avec des feuilles a4 - Guide
- Écrire plusieurs lignes dans une cellule excel mac - Guide
- Automatiquement - Guide
- Regrouper plusieurs feuilles excel en une seule - Guide
- Masquer conversation whatsapp - Guide
2 réponses
Bonjour
Par formule je ne pense pas possible de tester si une ligne est masquée
Par macro on peut faire une macro placée dans le Worksheet de la 2eme feuille qui s'active dès qu'on sélectionne la feuille 2
Pour placer la macro dans le Worksheet feuille 2 :
ALT + F11 pour ouvrir l'éditeur VBA
Selectionner par doubleclic la Feuille 2 dans l'arborescence
Copier-coller la macro dans la page
Fermer l'éditeur
Cdlmnt
Via
Par formule je ne pense pas possible de tester si une ligne est masquée
Par macro on peut faire une macro placée dans le Worksheet de la 2eme feuille qui s'active dès qu'on sélectionne la feuille 2
Private Sub Worksheet_Activate() Dim Ligne As Long 'dernière ligne non vide feuille 1 Ligne = Sheets(1).Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row ' Boucle sur les lignes feuille 1 For n = 1 To Ligne ' si la ligne n'est pas masquée If Sheets(1).Rows(n).Hidden = False Then 'incrementation variable i pour la ligne i = i + 1 'Boucle sur les colonnes 1 à 3 de feuille 1 (à adapter si besoin) For c = 1 To 3 ' Copie les cellules en feuille 2 Sheets(2).Cells(i, c) = Sheets(1).Cells(n, c) Next c End If Next n End Sub
Pour placer la macro dans le Worksheet feuille 2 :
ALT + F11 pour ouvrir l'éditeur VBA
Selectionner par doubleclic la Feuille 2 dans l'arborescence
Copier-coller la macro dans la page
Fermer l'éditeur
Cdlmnt
Via
Je cherche à le faire évoluer et j'ai abouti au code suivant qui permet de cacher de manière identique les lignes de la feuille 2 à partir de celle de la feuille 1.
je cherche maintenant à obtenir le prix total de la commande dans une cellule, i.e: multiplier le nombre d'articles commandés (feuil2 colB) par le prix unitaire (feuil1 colC). initialement j'obtenais ce prix total avec la fonction sommeprod: "=SOMMEPROD(Feuil2!B5:B2000;Feuil1!$C5:$C2000)"
connaissez vous une fonction équivalente à sommeprod mais qui ne prenne pas en compte les lignes cachées ? J'ai exploré SOUS.TOTAL mais sans succès.
=SOUS.TOTAL(9;C:C)
PS: je détaille au cas où mais je me doute que cette fonction est bien connue :)
Si par exemple le filtre est un X en colonne D et les prix en colonne C
=SOMMEPROD((C2:C2000)*(D2:D2000="X"))