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

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
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))))))))))));"")
 

FloASF63

XLDnaute Nouveau
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
 

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
 

TooFatBoy

XLDnaute Barbatruc
Je pense pas, mais c'est le seul moyen que j'ai trouvé pour qu'il n'y ai pas de 0 affiché
OK, donc au lieu de OU(F35="EUR/USD";F35="AUD/USD";F35="GBP/USD")
on peut simplement mettre F35<>""
si je comprends bien ?

Donc de la formule du début, il ne resterait plus que :
Code:
=SI(F35<>"";ARRONDI(SOMME($J$34:J34)/RECHERCHEV($N$26;Général!M3:N12;2;FAUX);0);"")
 

Discussions similaires

Réponses
2
Affichages
176
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…