XL 2019 Décaler un texte si la date tombe sur le weekend

patrick3267

XLDnaute Nouveau
Bonjour,

Je suis plutôt novice sur Excel et tout son univers de fonctions (et pire encore pour le VBA 😖) du coup, je rame depuis plusieurs jours à me trouver une formule.
Comme je ne trouve rien de concluant ou qui puisse me mettre sur une piste concrète dans les divers forums, je viens poser la question à ceux qui savent. 😉

Voilà :
Je cherche à me créer un calendrier perpétuel dans lequel je souhaite qu'une cellule affiche un texte "XXX" à une date précise. Mais, si cette date précise tombe sur un samedi ou un dimanche, que ce texte soit décalé au vendredi précédent.

En entrant cette formule :

=SI(JOUR(A2)=24; "XXX";"")

j'obtiens bien mon texte sur le 24ème jour de chaque mois (en la tirant sur chaque jour de l'année) mais je ne m'en sors pas pour que cette date soit décalée sur le vendredi d'avant en cas de weekend. J'ai essayé de bricoler avec JOURSEM ; DECALER ; SERIE.JOUR.OUVRE ; DATE, etc. mais c'est le néant.

Dans le même élan, je souhaite que cette cellule soit colorée ; je m'en suis sorti avec une MFC :

Appliquer une mise en forme uniquement aux cellules qui contiennent / Texte spécifique / contenant / xxx

mais là aussi je ne trouve pas le moyen de décaler cette MFC si ça tombe sur le weekend.

Je précise que le but final est qu'en changeant juste l'année, tout se mette à jour automatiquement (pour l'heure, j'ai déjà réussi à faire que les jours se mettent à jour et que les weekends soient colorés -gris en l'occurrence).

Bref, je rame comme un galérien donc je vous remercie par avance pour votre aide précieuse.

Cordialement
Patrick
 
Solution
Bonjour patrick3267,

Essayez avec l'une ou l'autre des formules suivantes :

Code:
=SI(OU(ET(JOUR(A1)=22;JOURSEM(A1;2)=5);ET(JOUR(A1)=23;JOURSEM(A1;2)=5);ET(JOUR(A1)=24;JOURSEM(A1;2)<=5));"XXX";"")

Code:
=SI(OU(ET(OU(JOUR(A1)=22;JOUR(A1)=23;JOUR(A1)=24);JOURSEM(A1;2)=5);ET(JOUR(A1)=24;JOURSEM(A1;2)<=5));"XXX";"")

qui renvoient XXX que le vendredi tombe un 22, 23 ou que le 24 ne soit pas un jour de week end

;)

soan

XLDnaute Barbatruc
Inactif
Bonjour @patrick3267, le fil,

tu as écrit : « je rame depuis plusieurs jours à me trouver une formule. »
et : « Bref, je rame comme un galérien »

bienvenue sur le forum à un cher compagnon d'infortune ! 🚣‍♂️ 🚣‍♂️ 🚣‍♂️

je rame autant que toi aux galères, car je ne sais pas non plus comment repousser la date
d'un weekend au vendredi précédent ; ton intention est vraiment louable, car c'est mieux
que le proverbe : « ne remets pas au lendemain ce que tu peux faire le jour-même. » 😜

soan
 
Dernière édition:

patrick3267

XLDnaute Nouveau
Bonjourn le fil

Si j'ai bien compris la donne, je propose cette autre formule
=REPT("XXX";JOURSEM(A1;2)>=5)
qui insére des XXX si la date en colonne A est un vendredi, un samedi ou un dimanche.
Bonjour Staple1600,

Merci pour ton aide. En fait ta formule répète mon texte sur les trois jours (VSD) alors que je ne veux qu'il s'inscrive que sur la date du 24 ou, s'il tombe sur un samedi ou dimanche, que celui soit décaler au vendredi précédent (soit le ve 22 ou le ve 23).

Merci tout de même
Cordialement
Patrick
 

patrick3267

XLDnaute Nouveau
Bonjour Patrick,

Voici un exemple de ce que tu peux faire, il faut prévoir la formule sur 2 jours avant le 24 (WE) +le 24

@+
Bonjour BrunoM45,

Merci pour ton aide, ta formule fonctionne pratiquement correctement. Le seul problème qu'il y a est que lorsque le 24 tombe sur un samedi, l'échéance (qui est décalée de 2 jours) tombe sur un jeudi...

J'ai essayé d'intercaler un SI supplémentaire mais au final je me retrouve avec deux échéances (une en jeudi et une en vendredi) dans le même moi ce qui ne m'arrange pas vraiment en fait. :rolleyes:

Mais déjà un grand merci
Cordialement
Patrick
 

patrick3267

XLDnaute Nouveau
Bonjour patrick3267,

Essayez avec la formule suivante :

Code:
=SI(OU(ET(JOUR(A1)=22;JOURSEM(A1;2)=5);SI(ET(JOUR(A1)=24;JOURSEM(A1;2)<6)));"XXX";"")

;)
Bonjour Soan,

Merci pour ton aide, ta formule fonctionne pratiquement correctement. Le seul problème qu'il y a est que lorsque le 24 tombe sur un samedi, l'échéance (qui est décalée de 2 jours) tombe sur un jeudi...

En fait comme dans celle de BrunoM45.

Grand merci
Cordialement
Patrick
 

njhub

XLDnaute Occasionnel
Bonjour patrick3267,

Essayez avec l'une ou l'autre des formules suivantes :

Code:
=SI(OU(ET(JOUR(A1)=22;JOURSEM(A1;2)=5);ET(JOUR(A1)=23;JOURSEM(A1;2)=5);ET(JOUR(A1)=24;JOURSEM(A1;2)<=5));"XXX";"")

Code:
=SI(OU(ET(OU(JOUR(A1)=22;JOUR(A1)=23;JOUR(A1)=24);JOURSEM(A1;2)=5);ET(JOUR(A1)=24;JOURSEM(A1;2)<=5));"XXX";"")

qui renvoient XXX que le vendredi tombe un 22, 23 ou que le 24 ne soit pas un jour de week end

;)
 

patrick3267

XLDnaute Nouveau
Bonjour patrick3267,

Essayez avec l'une ou l'autre des formules suivantes :

Code:
=SI(OU(ET(JOUR(A1)=22;JOURSEM(A1;2)=5);ET(JOUR(A1)=23;JOURSEM(A1;2)=5);ET(JOUR(A1)=24;JOURSEM(A1;2)<=5));"XXX";"")

Code:
=SI(OU(ET(OU(JOUR(A1)=22;JOUR(A1)=23;JOUR(A1)=24);JOURSEM(A1;2)=5);ET(JOUR(A1)=24;JOURSEM(A1;2)<=5));"XXX";"")

qui renvoient XXX que le vendredi tombe un 22, 23 ou que le 24 ne soit pas un jour de week end

;)
Salut njhub,
Un grand merci pour tes formules, elles fonctionnent toutes les deux à merveille. :cool:

Un grand merci à toi particulièrement et à tous ceux qui m'ont gentiment donné de leur temps.

Bon Nouvel an et excellente année 2021 à tous.
Patrick
 

Discussions similaires

Statistiques des forums

Discussions
312 165
Messages
2 085 882
Membres
103 010
dernier inscrit
Sys974