Date devant tomber un jour donné

F

Fréd

Guest
Bonjour le Forum,
Je cherche une formule (pour me changer du VBA). J'ai une date de facture à laquelle j'ajoute un délai et qui me donne une date de règlement. Ce que je veux c'est que ma formule me retourne le 1er vendredi après cette date (ou le jour même si ça tombe un vendredi).

J'espère avoir été assez explicite.
Merci d'avance de votre aide.

Fréd
 
M

Monique

Guest
Bonjour,

Te renvoie la date en A1 si c'est un vendredi ou bien le vendredi suivant :
=A$1-MOD(A$1+1;7)+(JOURSEM(A$1)<>6)*7

Si ton délai est de 10 jours :
=A$1+10-MOD(A$1+11;7)+(JOURSEM(A$1+10)<>6)*7

2 caractères en moins :
=A$1+10-MOD(A$1+4;7)+(JOURSEM(A$1+3)<>6)*7
 
M

Monique

Guest
Re,

La 1ère partie de la formule :
=A$1-MOD(A$1+1;7)
te donne la date en A1 si c'est un vendredi ou, sinon, le vendredi précédent

La 2ème partie n'est qu'un artifice, elle ajoute 7 jours à la date trouvée si A1 n'est pas un vendredi.
=(JOURSEM(A$1)<>6)*7
En clair (VRAI)*7 = 1 * 7 = 7
(FAUX)*7 = 0 * 7 = 0
Le même résultat avec :
=(MOD(A$1;7)<>6)*7

Pour Excel, 1 = 1 jour = 01/01/1900 = dimanche
2 = 02/01/1900 = lundi
3 = 03/01/1900 = mardi

La fonction Joursemaine(A1) te renvoie
1 pour dimanche, 2 pour lundi, etc, 7 pour samedi et on repart sur 1, 2, 3 etc

La fonction Mod(A1;7) te renvoie le reste de la division par 7 de la valeur contenue en A1
=MOD("01/01/1900";7) te renvoie 1
=MOD("02/01/1900";7) te renvoie 2
=MOD("03/01/1900";7) te renvoie 3
=MOD("un vendredi quelconque";7) te renvoie 6

Cette partie
= - MOD(A1+1;7)
enlève 2 à la valeur de A1 si A1 est un dimanche --> on tombe sur le vendredi
enlève 3 à la valeur de A1 si A1 est un lundi --> on tombe sur le vendredi
enlève 0 à la valeur de A1 si A1 est un vendredi --> on reste sur le vendredi

Dans - Mod (A1 + 1; 7) tu remplaces 1 par 2 si tu veux le jeudi, par 3 si tu veux le mercredi
 
M

Monique

Guest
Re,

Celle-ci est beaucoup plus courte :
=A1-1-MOD(A1;7)+7
Tu pars de la veille du jour en A1
Comme tu tombes 1 semaine trop tôt, tu ajoutes 7

Pour avoir le jeudi :
=A$1-1-MOD(A$1+1;7)+7
Pour avoir le mercredi :
=A$1-1-MOD(A$1+2;7)+7
 
F

Fréd

Guest
Bonsoir Monique,
Je suis épatée, merci beaucoup pour tes explications, j'ai mis en pratique, ça fonctionne impeccablement et je vais me coucher nettement moins bête.

D'autant plus que j'ai aussi appliqué ton conseil pour accélérer le calcul de mon tableau (trouvé dans un autre fil) en nommant mes formules.

Le bonheur...

Merci de tes conseils et de tous ceux des "piliers" de ce forum
Au plaisir
Fréd
 

Discussions similaires

Réponses
4
Affichages
525

Statistiques des forums

Discussions
312 215
Messages
2 086 322
Membres
103 178
dernier inscrit
BERSEB50