Masquer des lignes selon condition

Bonjour à vous,

Bien entendu, avant de poster, j'ai cherché sur le forum : j'ai bien trouvé des questions quasi identiques à la mienne, mais... je n'ai pas vraiment compris les réponses !

Du coup, je re-pose ! désolé !

Dans le fichier joint (extrait d'un classeur plus gros) je voudrais masquer les lignes dont les dates sont antérieures ou postérieures au mois noté en H1.

Merci d'avance de votre aide.

Cordialement.

37aide-modele.xlsx (18.13 Ko)

Bonjour,

Une solution

68aide-modele.xlsm (26.56 Ko)

A+

Merci, vraiment...

mais il me reste une question, que je ne meure pas complètement idiot (je sais, ce sera dur...) où est la commande ? la formule ? la fonction, que sais-je... pour que je puisse la réutiliser si besoin ? est-ce du excel ou du VBA ?

Merci de votre bonne réponse !

Re,

D’abord, pour répondre directement à ta question, le traitement est effectué avec VBA. La procédure correspondante se nomme "Masquer" et est lancée avec le bouton "Mise à jour". Le code est accessible dans le module standard Module1.

Si ce que je viens d’écrire ne t’inspire rien, c’est sûrement parce que tu n’es pas encore familiarisé à VBA et j’aurai du mal à t’expliquer succinctement toutes ses subtilités.

Donc, la vrai question c’est de savoir où tu en es. Si tu souhaites t’investir dans ce type de programmation, il y a de nombreux tutoriels qui pourront t’aider.

D’un autre coté, si tu es habitué à utiliser Excel et ses fonctionnalités, il est peut-être préférable d’utiliser un filtre automatique sur la colonne Jour.

Et si tu ne connais ni l’un ni l’autre, il reste le papier, la gomme ou les ciseaux.

(je plaisante bien sûr, avec la gomme on n'arrive pas à masquer, il faut faire du pliage )

A+

Bon, la gomme et le papier, c'est encore bien trop compliqué pour moi !

Sérieusement : merci pour la solution VBA, qui marche. Je l'installe dans mon classeur, et en route.

Cependant, je cherche par moi-même la solution excel que vous m'indiquez (filtrer sur la date de chaque ligne), ce qui me permettra de réemployer le cas échéant, et j'aurai quand même appris qqch.

VBA, j'en ignore tout : je sais ce que c'est pour avoir regardé les tuto sur ce site.

Excel, disons que j'en comprends les grands principes, je "maîtrise" une vingtaine de fonctions, j'arrive à les imbriquer, je comprends les grandes règles de la syntaxe, et les manips de base.

C'est peu, mais... je ne suis qu'un prof de lettres en retraite !

Merci encore !

Bonjour Quercus,

Inutile en effet de griller les étapes. Les fonctions intégrées d’Excel sont généralement suffisantes pour obtenir le résultat attendu.

Dans le classeur joint, tu trouveras un exemple de filtrage de la colonne "Jour" avec le critère "Février 2014".

Cette solution semble répondre parfaitement à ton attente. Il faut simplement prendre la peine de définir le critère.

Par la suite, pour évoluer vers la programmation, tu peux t’amuser à enregistrer des macros qui te permettront de traduire par programme les actions que tu réalises sous Excel.

Mais attention, si tu mets un doigt dedans, prépare-toi à de longues heures de solitude .

30aide-modele.xlsx (18.32 Ko)

A+

Re-bonjour Frangy,

Oui, je me sens mieux pour l'instant avec les fonctions intégrées d'Excel, dont je suis très loin d'avoir fait le tour !

Le filtrage, là, je comprends (à peu près)...

Merci pour les conseils de prudence : étant plutôt "passionné", je risque en effet de mettre le doigt dans un engrenage...

Il me reste, si vous permettez, un "bug" : voir le classeur joint. (il contient seulement la solution VBA, même si je préfère le filtre)

En fait, ce qui déclenche toutes les màj de dates partout dans le classeur, c'est l'entrée à la main de la date en H1 de la feuille EMPLOYÉES. Or, dans les deux solutions que vous m'offrez (fonction et VBA), dès que je change cette date (et c'est le but du classeur : automatiser les feuilles à partir d'une date initiale) toutes les lignes sont filtrées, puisqu'aucune ne correspond au mois de "février" qui était là juste pour l'exemple... J'ai besoin du filtrage "non/mois en cours H1", quel que soit ce mois.

Pas certain d'être clair... Vous me direz, s'il vous reste de la patience !

Merci encore !

J’ai du mal à suivre.

Ta demande initiale était

Dans le fichier joint (extrait d’un classeur plus gros) je voudrais masquer les lignes dont les dates sont antérieures ou postérieures au mois noté en H1.

Avec le classeur actuel, en prenant pour exemple la date du 01/02/2014 en H1, si je traduis correctement ton souhait, il reste donc à l’affichage les données qui appartiennent à Février 2014 puisque les autres sont masquées.

Dans ta dernière demande, tu indiques

J'ai besoin du filtrage "non/mois en cours H1", quel que soit ce mois.

J’ai deux remarques :

1) le mois en cours ne peut pas être choisi. La formule en H1 devrait être =AUJOURDHUI() , le résultat 29/05/2013 et le mois est donc mai.

2) si tu filtres avec le critère non/mois en cours H1", il restera donc à l’affichage toutes les données qui n’appartiennent pas à mai 2013.

Est-ce une autre demande ou une mauvaise interprétation de la première ?

A+

Merci de votre patience...

Non, l'"entrée" de tout le classeur est bien une date premier jour du mois (je n'ai pas trouvé mieux.... je veux en fait indiquer un mois, mais je ne sais pas faire autrement que d'entrer le premier jour, parce qu'en plus, ça règle les semaines des feuilles suivantes ; s'il y a un moyen plus simple, je suis preneur ! ) et cela en H1.

Il s'agit de classeurs qui anticipent sur le mois ou les mois à venir, un tableau par mois.

Donc, aucun automatisme en H1, c'est l'"entrée"...

Je me suis mal exprimé à propos du filtre : je voudrais que, quel que soit le mois qu'on entre en H1 sur EMPLOYÉES, les derniers jours du mois précédent qui s'inscrivent en début de tableau (et provenant de feuilles qui, elles, sont obligatoirement en semaines du lundi au dimanche) et les premiers jours du mois suivant, qui se mettent en fin de tableau soient masquées automatiquement. Ainsi, à chaque fois qu'on ouvre le classeur "modèle", qu'on l'enregistre sous un nom de mois, qu'on entre le mois en H1, on n'a sur EMPLOYÉES que les jours du mois, les autres sont masqués...

Je sais c'est compliqué... mais j'ai deux logiques à respecter : sur la feuille EMPLOYÉES, uniquement du premier au dernier jour du mois (quel que soit ce jour) et sur toutes les autres feuilles, une logique de semaines, commençant toutes un lundi, et s'achevant toutes un dimanche. Concilier les deux, ça me "prend" un peu la tête...

Mais avec votre aide, ça va marcher !

Merci encore !

Au vu de tes tableaux, la seule anomalie qui me saute aux yeux concerne la détermination des numéros de semaine.

Regarde l’exemple joint et dis-moi si j’ai bien compris le problème.

Je n’ai fait que l’adaptation des feuilles "EMPLOYÉES" et "groupes1".

A+

Dans le classeur que vous me renvoyez, page EMPLOYÉES, si je change la date en H1 (par exemple 01/01/2014...), il n'y a plus de lignes d'affichées... j'ai besoin d'avoir une ligne pour tous les jours du mois, et exclusivement ceux-là, et dans la zone rouge restauration, en bout de ligne, une liaison avec les totaux de la page TOTAUX EFFECTIFS

En revanche, je ne comprends pas bien le problème avec les numéros de semaine : c'est qqch qui marche correctement, me semble-t-il.

Mais bon, je ne veux quand même pas prendre tout votre temps avec mon problème !

Bonjour Quercus,

Dans le classeur que vous me renvoyez, page EMPLOYÉES, si je change la date en H1 (par exemple 01/01/2014...), il n'y a plus de lignes d'affichées... j'ai besoin d'avoir une ligne pour tous les jours du mois, et exclusivement ceux-là.

Si tu places la date du 01/01/2014 en H1, tu obtiens la liste des jours de janvier qui ont été préalablement saisies, c'est-à-dire du 27/01/2014 au 31/01/2014. Je n’ai rien changé à cette liste, c’est celle que tu m’as transmise. Si tu affiches l’intégralité de la liste, tu peux t’apercevoir qu’elle ne prend en compte que la période du 27/01/2014 au 09/03/2014. Le programme exécuté via le bouton "Mise à jour" permet simplement d’effectuer un filtrage de cette liste. Si tu saisis en H1 une date qui n’appartient pas à cette liste, tu n’obtiendras aucune ligne en retour.

Dans le fichier joint, j’ai modifié ta liste pour compléter l’année 2014 (période du 01/01/2014 au 31/12/2014).

En revanche, je ne comprends pas bien le problème avec les numéros de semaine : c'est qqch qui marche correctement, me semble-t-il.

Effectivement, cela doit fonctionner correctement de ton coté avec Excel 2010. Je n’ai pas le même résultat avec Excel 2007.

A+

Cher Frangy,

On progresse ! J'avoue n'avoir pas compris toutes vos explications, mais j'ai testé !

Pour tous les mois, de janvier 2013 à novembre 2013, tout fonctionne : j'ai bien, après avoir cliqué "mettre à jour", tous les jours du mois et seulement ceux-là.

Pour décembre 2013, mystère : après avoir cliqué, toutes les lignes disparaissent !

Pour janvier 2014, tout remarche, et aussi les quelques mois suivants.

Et je comprends seulement maintenant votre stratégie : calculer toutes les lignes de tous les jours de l'année, et même plus, et masquer celles qui ne correspondent pas au mois choisi.

Et si je n'ai pas décembre, c'est que vous ne l'avez pas entré...

OK.... bien entendu, ça marche !

Mais est-ce que je serai capable, lorsque tout aura été épuisé (dans un an), de renouveler l'opération ? est-ce qu'il n'y a pas un moyen pour ne calculer et n'afficher que les lignes du mois ?

Dans le premier classeur envoyé (il me semble), j'étais parvenu à afficher sur EMPLOYEES les semaines complètes correspondant au mois entré, mais je ne parvenais pas à masquer les jours "hors mois entré" : ça commençait toujours par un lundi, puisque la date était renvoyée de la feuille "groupe", elle-même paramétrée pour toujours commencer un lundi (et toutes les autres feuilles aussi). En revanche, il n'y avait rien à "pré-calculer" : quel que soit le mois choisi, ça marchait, hormis ces lignes excédentaires en début et en fin.

Dans votre solution, bien entendu ça fonctionne, et même très bien, mais il faut avoir préparé d'avance son année...

J'ai l'impression qu'en faisant un "mix" des deux solutions, on effacerait tous les inconvénients.

Et encore mille mercis de votre patience !

Bonjour,

J'ai modifié la partie de code qui détermine la période de traitement.

Normalement, il ne devrait plus y avoir de butée, la période étant définie par rapport à la date entrée en H1.

A+

Cher Frangy,

C'est vraiment ça !

Les mots me manquent...

Maintenant, grâce à vous, je vais enfin pouvoir

Encore grand merci !

Rechercher des sujets similaires à "masquer lignes condition"