VBA : tester si une valeur se trouve dans une plage

Fermé
xuorel Messages postés 254 Date d'inscription samedi 24 novembre 2012 Statut Membre Dernière intervention 11 mai 2023 - 21 déc. 2016 à 10:59
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 22 déc. 2016 à 17:49
Bonjour,

voici mon cas de figure :
- j'ai dans la plage A1:A365 les dates des jours de l'année
- j'ai dans la plage B1:B365 des cases vides dans lesquelles il sera renseigné le nombre d'heures de travail
- j'ai en plage D16:D18 les dates des 3 jours fériés mobiles
- j'ai dans la plage D21:D28 les dates des 8 jours fériés fixes

je souhaite en VBA pouvoir effectuer sur chaque case B1:B365 un test qui dit que si la case de droite (la date du jour) correspond à l'un des jours fériés (renseigné dans D16:D18 ou D21:D28) la case Bx se complète de mot FERIE.

que me conseillez vous ?

6 réponses

PHILOU10120 Messages postés 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 796
21 déc. 2016 à 13:49
Bonjour Xuorel

Un exemple dans le fichier

http://www.cjoint.com/c/FLvmXPFkTsx
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 775
Modifié par Patrice33740 le 21/12/2016 à 14:53
Bonjour PHILOU10120

Excellent exemple : il est inutile d'employer VBA lorsqu'on peut s'en passer !

Par contre, je trouve que tu emploies une formule très compliquée pour calculer Pâques : une version longue de la formule publiée par Jean-Paul Mesters.

On obtient la même précision (de 1900 à 2099) avec la formule de Daniel Wagner :
=DATE(B2;4;MOD(24-11*MOD(B2;19);30)-MOD(1+ENT(B2*5/4)+MOD(24-11*MOD(B2;19);30)-(MOD(24-11*MOD(B2;19);30)>27);7)-(MOD(24-11*MOD(B2;19);30)>27)-3)


Et une précision plus grande (de 1900 à 2203) avec plusieurs autres formules courtes notamment une variante de celle de Thomas Jansen :
=ARRONDI(("4/"&B2)/7+MOD(19*MOD(B2;19)-7;30)*14%;)*7-6
0