VBA : tester si une valeur se trouve dans une plage [Fermé]

Signaler
Messages postés
218
Date d'inscription
samedi 24 novembre 2012
Statut
Membre
Dernière intervention
21 avril 2021
-
Messages postés
8535
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 avril 2021
-
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

Messages postés
5552
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
5 mai 2021
603
Bonjour Xuorel

Un exemple dans le fichier

http://www.cjoint.com/c/FLvmXPFkTsx
Messages postés
8535
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 avril 2021
1 657
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
Messages postés
5552
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
5 mai 2021
603
Bonjour Patrice33740

C'est vrai, je suis parti d'un ancien fichier qui date il fait référence à la formule de Friedrich l'orthographe n'est peut être pas la bonne
c'est une formule que j'utilisais sur excel 1995 donc ce n'est pas d'hier !
Je vais me mettre en mémoire votre proposition pour une autre fois
Messages postés
8535
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 avril 2021
1 657
Un certain Carl Friedrich Gauss a publié une méthode de calcul de Pâques en 1800 (c'était pas hier !), avec de nombreuses erreurs, mais ce n'est pas celle que tu utilises.
Messages postés
218
Date d'inscription
samedi 24 novembre 2012
Statut
Membre
Dernière intervention
21 avril 2021
1
Merci pour vos retours,
j'ai cependant pas assez bien précisé mon besoin.

J'ai simplifié ma problématique pour focaliser le sujet sur ce qui me pose problème.
L'enjeu est de faire une matrice de planning combinant formules et mises en forme conditionnelles qui permette, en renseignant juste l'année concernée, de placer automatiquement les week-end en rose, les jours fériés en jaunes avec dans la case correspondante marqué "férié".

J'ai mis en place un bouton avec une macro qui permet de faire un RAZ.

L'enjeu de ma question est donc dans cette macro RAZ de placer au bon endroit les mentions "FERIE" en fonction de l'année.

je voudrais donc que ma macro inclus un traitement qui fasse quelque chose dans le genre de :
- je défini un objet qui contient les cases dans ma feuille de travail où sont renseigné les jours férié.
- pour chaque case relative à un jour, si la date correspondant correspond à l'une des valeurs de l'objet ci-dessus, alors la case contient "FERIE".

Au besoin je mettrais mon fichier excel en ligne pour visualisé le schmilblick
Messages postés
5552
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
5 mai 2021
603
Bonjour Xuorel

Que voulez-vous faire un planning pour les jours travaillés et congés RTT ...
Un fichier pour compter les heures, ou les deux

Pouvez-vous préciser ?

Ou nous faire parvenir votre fichier sans donnée personnelle sur Cjoint.com
copier le lien créé et venir le coller ici dans votre réponse sur CCM
Messages postés
218
Date d'inscription
samedi 24 novembre 2012
Statut
Membre
Dernière intervention
21 avril 2021
1
Ci-joint ma matrice.

https://www.cjoint.com/c/FLvvWAy3fRJ

C'est un planning annuel dans le cadre d'une annualisation pour définir la répartition annuelle des heures de travail.

Au début le planning commençait forcément en janvier. Ma macro prévoyait lors du RAZ d'ajouter le texte "FERIE" dans les cases des jours fériés mobiles (les jours fériés fixes tombant toujours dans les mêmes cellules quelque soit l'année leur renseignement était simple).

'Détermination des jours fériés mobiles et vérouillage des cases
For Each R In colonnes_jrs
Set G = Cells(R.Row, R.Column - 1)
If G.Value = Range("AN16").Value Or G.Value = Range("AN17").Value Or G.Value = Range("AN18").Value Then
R.Value = "FERIE"
R.Locked = True
End If
Next R



J'ai voulu ensuite permettre de choisir le moi de début du planning. Les jours fériés fixes ne tombent alors plus forcément dans les memes cellules.

Mon problème est que je ne voudrais pas me retrouver avec un test if à rallonge avec 11 "or"
If G.Value = Range("AN16").Value Or G.Value = Range("AN17").Value Or G.Value = Range("AN18").Value Or [...] Then
Messages postés
5552
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
5 mai 2021
603
Bonjour Xuorel

Votre fichier modifié, regarder si cela vous convient
J'ai simplifié quelques formules
Je n'ai pas été voir les macro

http://www.cjoint.com/c/FLwlBMqT3tx
Messages postés
218
Date d'inscription
samedi 24 novembre 2012
Statut
Membre
Dernière intervention
21 avril 2021
1
Bien vu pour la simplification des formules pour les jours.

Par contre cela ne répond pas à ma problématique initiale : mettre le mot "FERIE" au bout de chaque jour férié lors d'un RAZ.

Ce doit donc nécessairement passer par la macro (ou du moins je le souhaite).
Messages postés
8535
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
9 avril 2021
1 657
Bonjour,

Puisque les jours férié sont différenciés par une couleur différente (MFC), est-ce bien utile d'écrire en plus "Férié" ?
Messages postés
5552
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
5 mai 2021
603
Bonjour Xuorel

Le fichier modifié avec une colonne en plus
Un jour férié peut parfois être travaillé donc la cellule reste disponible

http://www.cjoint.com/data3/FLwoTpvOqLx_Matrice-Planning-Fériés-WE-PhC2.XLSM