XL 2019 Masquer des lignes avec VBA si supérieures ou inférieures à une date définie

FloASF63

XLDnaute Nouveau
Bonjour à tous,
Voici mon tout premier message afin de vous demander de l'aide. Bien que je vous suive très régulièrement et vous m'avez été d'une aide précieuse jusqu'à maintenant. Aujourd'hui je bloque sur quelque chose peut être de tout simple (en tout cas pas pour moi car je n'ai pas de connaissances VBA), à savoir masquer des lignes en fonction d'une date. Je m'explique plus précisément et je joindrais le fichier pour mieux comprendre.

Pour mon activité je dois établir des rapports qui sont destinés aux clients, j'ai donc sur mon fichier excel 2 feuilles, une feuille général et une feuille modèle client. Pour la feuille générale il n'y a rien à toucher, par contre pour la feuille client, j'ai 3 éléments clés à voir savoir deux dates en D3 et F3 et mon tableau de données qui commence ligne 33.
Ce que je souhaiterai dans l'idéal et qui me comblerait :) , c'est que en gros dans mon tableau il ne soit affiché que les données entre les dates qui sont en D3 et F3 et pour ça j'aurai besoin de simplement masquer les lignes du tableau dont les dates sont <D3 et masquer les lignes >F3 ET effacer le contenu de ces lignes masquées.

Il est possible de la faire en manuel en sélectionnant les lignes à masquer et en effaçant le contenu, mais le problème c'est que je dois faire 500 fiches clients, je souhaiterai donc automatiser cela avec VBA :)

Je vous remercie grandement par avance pour l'aide que vous m'apporterez.
Florian
 

Pièces jointes

  • rapport-clients-copie.xlsx
    62.6 KB · Affichages: 15

TooFatBoy

XLDnaute Barbatruc
Déjà, merci d'avoir testé le fichier ! 👍

de mon oeil de non initiés je ne vois pas une grande différence entre ces 3 modèles, mais ils sont tous fonctionnels.
Les trois modèles ne donnent pas du tout les mêmes résultats, et il n'y a que toi qui peut nous dire lequel donne les bons résultats (à supposer qu'un des trois donne les bons résultats).

J'ai essayé d'expliquer la différence entre ces trois modèles, en #42.
 

FloASF63

XLDnaute Nouveau
Déjà, merci d'avoir testé le fichier ! 👍


Les trois modèles ne donnent pas du tout les mêmes résultats, et il n'y a que toi qui peut nous dire lequel donne les bons résultats (à supposer qu'un des trois donne les bons résultats).

J'ai essayé d'expliquer la différence entre ces trois modèles, en #42.
Ah oui en effet cela ne donne pas les mêmes résultats.
Le modèle 3, ne prend pas en compte les premières dates, lorsque je me met comme date de référence le 01/02, cela devrait m'afficher la première ligne du tableau du 21/02, or ça m'affiche à partir du 25/02.
Le modèle 2, lorsque que je change de date ligne 6, mes opérations dénouées et placées lignes 13 et 14, ne changent pas, le calcul reste le même peu importe l'amplitude des dates.
Finalement celui qui est fonctionnel (à première vue) en tout point c'est le modèle 1
 

TooFatBoy

XLDnaute Barbatruc
Le modèle 3, ne prend pas en compte les premières dates, lorsque je me met comme date de référence le 01/02, cela devrait m'afficher la première ligne du tableau du 21/02, or ça m'affiche à partir du 25/02.
C'est parce qu'il tient compte de la date de création de la fiche, qui est le 25/02.


Le modèle 2, lorsque que je change de date ligne 6, mes opérations dénouées et placées lignes 13 et 14, ne changent pas, le calcul reste le même peu importe l'amplitude des dates.
Pour l'instant je n'ai pas compris. Mais je regarderais ça dans l'après-midi, si tu veux. ;)
 

FloASF63

XLDnaute Nouveau
C'est vrai que c'est celui des trois qui correspond à ta demande initiale.

Mais j'avoue que je suis surpris que ce soit celui qui donne les bons résultats.
J'aurais plutôt pensé que ce serait le modèle 3. 🤔
Tout à fait c'est le plus fonctionnel, j'ai essayé de manière un peu plus approfondi et cela fonctionne parfaitement. Très simple et léger en terme de formule , c'est vraiment appréciable.
Petite question, tu as mis un cadre dans la zone grise ou sont le rendement et date de création du fichier.
J'ai essayé de déplacé ce cadre pour le remonter en ligne 5, toujours colonne M, mais lorsque je change de date en D6 et F6, je me retrouve avec des div/0, j'ai pourtant bien mis à jour la formule en colonne G pour que ce soit divisé par la cellule M6, et bien la formule revient toujours sur M28 ou se trouvait le cadre initialement.
J'ai jeté un oeil du côté du code VBA, ce n'est pas la que je vais changer ceci, donc je ne sais pas ou faire cette modification :)
 

TooFatBoy

XLDnaute Barbatruc
Le modèle 2, lorsque que je change de date ligne 6, mes opérations dénouées et placées lignes 13 et 14, ne changent pas, le calcul reste le même peu importe l'amplitude des dates.
OK, j'ai regardé et j'ai compris ce que tu veux dire. ;)

Je n'ai touché qu'au tableau, et pas aux autres formules des fiches client.
Les modèles 2 et 3 donnent des valeurs erronées car ils comptabilisent aussi les lignes masquées.
Pour n'additionner que les valeurs non masquées, il faut utiliser SOUS.TOTAL.


Petite question, tu as mis un cadre dans la zone grise ou sont le rendement et date de création du fichier.
J'ai essayé de déplacé ce cadre pour le remonter en ligne 5, toujours colonne M, mais lorsque je change de date en D6 et F6, je me retrouve avec des div/0, j'ai pourtant bien mis à jour la formule en colonne G pour que ce soit divisé par la cellule M6, et bien la formule revient toujours sur M28 ou se trouvait le cadre initialement.
J'ai jeté un oeil du côté du code VBA, ce n'est pas la que je vais changer ceci, donc je ne sais pas ou faire cette modification :)
Je regarde et je te dis. ;)
 

FloASF63

XLDnaute Nouveau
OK, j'ai regardé et j'ai compris ce que tu veux dire. ;)

Je n'ai touché qu'au tableau, et pas aux autres formules des fiches client.
Les modèles 2 et 3 donnent des valeurs erronées car ils comptabilisent aussi les lignes masquées.
Pour n'additionner que les valeurs non masquées, il faut utiliser SOUS.TOTAL.
J'ai supprimé les modèles 2 et 3, pour ne garder que le modèle 1, qui est celui que je vais utiliser par défaut :)
 

FloASF63

XLDnaute Nouveau
Question : tu as bien glissé les cellules, et non copié/collé ???
Tout à fait, j'ai sélectionné le cadre et je l'ai fait glisser sur la même colonne mais en ligne 6. Pas de copier-coller, juste déplacé.
La formule en mise prend bien en compte ce changement, par contre lorsque je change de date, la formule revient par défaut avec une division en cellule M28 et non en M6 (nouvel emplacement du cadre)
 

TooFatBoy

XLDnaute Barbatruc
Je pense que c'est un effet de bord que je ne connaissais pas concernant les tableaux structurés.
Et... je t'avoue que je n'arrive pas à modifier ça !... :( :( :(

Au temps pour moi... quand tu as dit que tu avais regardé dans la macro et que ce n'était pas là que tu allais corriger, j'ai cru que tu disais que ce n'était pas là qu'il fallait corriger, mais en fait ça voulait sûrement dire que tu ne savais pas où corriger car je crois que tu as dis débuter en VBA.

Tout ça pour dire que c'est bien dans la macro qu'il faut corriger la formule. ;)
 
Dernière édition:

Discussions similaires

Réponses
32
Affichages
828
Réponses
30
Affichages
733
Réponses
1
Affichages
125
Réponses
12
Affichages
202

Statistiques des forums

Discussions
300 889
Messages
1 988 137
Membres
210 079
dernier inscrit
pgarceau