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: 16

FloASF63

XLDnaute Nouveau
@FloASF63 : en colonne G, tu peux effectivement largement simplifier la formule.

Perso, j'ai trouvé :
Code:
=SI(OU(F33="EUR/USD";F33="AUD/USD";F33="GBP/USD");ARRONDI(SOMME($J$32:J32)/RECHERCHEV($N$24;Général!M3:N12;2;FAUX);0);"")
à mettre en G32 et à tirer vers le bas.


@Softmama : je crois que tu as oublié la somme. 🤔
C'est bizarre dans les fichiers je ne retrouve pas la dernière formule que j'utilise dans la colonne G.

Code:
=SI(OU(NB.SI(F32;"EUR/USD");NB.SI(F32;"AUD/USD");NB.SI(F32;"GBP/USD"));SI(ET($N$49=Général!$M$3);ARRONDI($J$31/Général!$N$3;0);SI(ET($N$49=Général!$M$4);ARRONDI($J$31/Général!$N$4;0);SI(ET($N$49=Général!$M$5);ARRONDI($J$31/Général!$N$5;0);SI(ET($N$49=Général!$M$6);ARRONDI($J$31/Général!$N$6;0);SI(ET($N$49=Général!$M$7);ARRONDI($J$31/Général!$N$7;0);SI(ET($N$49=Général!$M$8);ARRONDI($J$31/Général!$N$8;0);SI(ET($N$49=Général!$M$9);ARRONDI($J$31/Général!$N$9;0);SI(ET($N$49=Général!$M$10);ARRONDI($J$31/Général!$N$10;0);SI(ET($N$49=Général!$M$11);ARRONDI($J$31/Général!$N$11;0);SI(ET($N$49=Général!$M$12);ARRONDI($J$31/Général!$N$12;0);SI(ET($N$49=Général!$M$13);ARRONDI($J$31/Général!$N$13;0))))))))))));"")
 

TooFatBoy

XLDnaute Barbatruc
Du coup je me rend compte que Softmama n'utilisait pas cette dernière formule, puisque dans son code VBA il y a "IF(ISBLANK(RC[-1])", pour la colonne J, le code VBA débute à B3 (de la feuille générale) au lieu de démarrer à B2
Je n'ai pas regardé son code, mais j'ai vu dans la colonne G qu'il utilise une formule un peu différente mais équivalente, avec DECALER et EQUIV au lieu de RECHERCHEV.


Ah bien super, ça simplifie grandement la lourdeur des formules :)
La formule de Softmania est équivalente. ;)
 

FloASF63

XLDnaute Nouveau
Je n'ai pas regardé son code, mais il utilise une formule différente, avec INDEX et EQUIV au lieu de RECHERCHEV.



La formule de Softmania est équivalente. ;)
Marcel je pense qu'on peut prendre ton fichier comme référence, les formules en Colonne G fonctionnent parfaitement.

Il manque peut être quelque chose à la formule de Softmama car le montant en G ne change pas :)
 

Discussions similaires

Réponses
2
Affichages
113

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T