XL 2016 Macro : masquer lignes selon conditions

elDucance↑

XLDnaute Nouveau
Bonjour la Famille excel-downloads.com, j'espère que vous allez bien.

Je viens vers vous pour le problème suivant :

dans le fichier joint, dans l'onglet 23-08-20 je souhaiterais que toute les lignes dont la valeur de la cellule A ne commencent pas par les préfixes inscrit dans l'onglet listes soient masquées.
Par exemple, si la valeur du code article pour la ligne 4 est C8015666, alors cette ligne entière devra être masquée.
Par la suite, j'aimerais ajouter d'autres préfixes discriminant dans l'onglet Listes.

Est ce qu'une macro peut faire ça ?
Je pense que oui, mais je ne sais pas trop (pas du tout , sinon je ne serais pas la en fait..) comment intégrer une formule dans une macro, a partir de l'enregistreur de macro.

Je vous souhaite un bon week end.
Portez vous bien

Cordialement,
ElDuce
 

Pièces jointes

  • elduce.xlsx
    23.6 KB · Affichages: 9
Solution
Exact. Bug ... depuis le début.
Une même variable ( Taille ) utilisée pour deux choses différentes. Erreur de gamin. :)
En PJ rectifié. J'ai vérifié par formules, dans le fichier vous devez avoir 17 lignes non masquées.

elDucance↑

XLDnaute Nouveau
Bonjour sylvanu,

merci pour ta réponse, ça fonctionne bien sauf ... que les valeurs masquées sont celles que je voudrais garder affichées et celles qui restent affichées sont celles à masquer ^^ .

J'ai essayé de passer le code :
VB:
 If Left(Sheets("23-08-20").Cells(L, "A"), 4) = Liste(Item, 1) Then
en
Code:
 If Left(Sheets("23-08-20").Cells(L, "A"), 4) <> Liste(Item, 1) Then
mais ça ne fonctionne pas.

Si tu as une petite piste, je suis preneur !

merci , bonne journée
 

elDucance↑

XLDnaute Nouveau
Bonjour sylvanu,
merci beaucoup, c'est du grand art !

Je vais maintenant adapter ces macros pour qu'elles puissent fonctionner sur d'autre feuille, avec un nom différent donc. Il me faut définir le nom de la feuille en variable et ensuite insérer ça dans la macro.
ça devrait le faire.

Merci beaucoup de ce coup de main ;)
Bonne journée
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Theob,
On peut passer par une liste pour faire du multipage, c'est plus simple et plus sain que de dupliquer la macro :
VB:
Sub MultiMasques()
    Liste = Array("23-08-20", "24-08-20", "25-08-20")
    For Feuille = 0 To UBound(Liste)
        Masque Liste(Feuille)
    Next Feuille
End Sub
Il suffit d'enrichir la liste avec les pages désirées. On parcourt la Liste et on lance Masquer sur chaque nom de cette liste.
( attention dans la PJ je n'ai pas repris Demasque ! )
 

Pièces jointes

  • elduce2 (1).xlsm
    53.5 KB · Affichages: 2

elDucance↑

XLDnaute Nouveau
Bonjour sylvanu, j'espère que tu as passé un joyeux Noël.

J'ai quelques soucis avec la solution que nous avons mise en place.
Tout d'abord, lorsque j'ai voulu ajouté d'autres préfixes à masquer (feuille Listes), ceux ci ne sont pas pris en compte dans la formule.
Ensuite, je galère un peu pour pouvoir étendre la macro sur plusieurs feuilles.
En effet, pour construire mon classeur de suivi journalier, je copie/colle à partir de ma feuille de base autant de feuilles qu'il y a de jour dans le mois, puis je les renomme 04-01 pour le 4 janvier par exemple. Je ne sais pas adapter la macro a tout ces noms différents.
Ce que je souhaiterais, ça serait d'avoir une macro qui puisse suivre sur toute mes feuilles, peu importe leurs noms, sans devoir être modifée....
De même, si je pouvais passer ma liste de préfixe sur la même feuille que mes données, ça m'arrangerait.

Dans le fichier joint, c'est l'exemple de ce que je souhaiterais mais non fonctionnel. Et qui puisse être dupliqué assez facilement...

Je ne pensais plus croire au père Noël, mais finalement, s'il m'entend.. :)

Merci pour votre attention,
Bien à vous

bonne fêtes de fin d'années.
Theob
 

Pièces jointes

  • elduce2 - 12-20.xlsm
    30.8 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Theob,
Un essai en PJ avec ce que j'ai compris.
Sur chaque feuille dupliquée les deux boutons Masquer Démasquer seront présent. Ils pointeront toujours vers les mêmes macros. Il suffit donc de dupliquer la feuille puis la renommer pour que tout soit opérationnel.
La liste des Préfixes concernés commencera toujours en L3 et sera présente sur chaque feuille dupliquée.
J'ai donc rendu les deux macros paramétrables. Elles sont uniques et ne s'appliquent que sur la feuille active.
 

Pièces jointes

  • elduce2 - 12-20_V2.xlsm
    53.8 KB · Affichages: 5

elDucance↑

XLDnaute Nouveau
Merci sylvanu, c'est exactement ce que je voulais.
Mais par contre, chez moi la macro masquer ne semble pas fonctionner parfaitement : je n'ai que 3 lignes restantes alors qu'ils y en a beaucoup plus qui commence par les fameux préfixe en colonne L.
Cela fonctionne de ton coté ?

Ciao
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Exact. Bug ... depuis le début.
Une même variable ( Taille ) utilisée pour deux choses différentes. Erreur de gamin. :)
En PJ rectifié. J'ai vérifié par formules, dans le fichier vous devez avoir 17 lignes non masquées.
 

Pièces jointes

  • elduce2 - 12-20_V3.xlsm
    54.3 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
311 708
Messages
2 081 750
Membres
101 812
dernier inscrit
trufu