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

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.

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Theob,
En PJ un essai.
J'ai considéré que tous les préfixes avaient 4 caractères, on peut en rajouter tant qu'on veut.
Je ne traite que la feuille 23-08-20 pour l'instant.
J'ai ajouté un bouton Démasque pour le test.
 

Pièces jointes

  • elduce.xlsm
    31.2 KB · Affichages: 9

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

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