Formule pour des échéances à la décade [Résolu/Fermé]

Signaler
Messages postés
4
Date d'inscription
samedi 26 janvier 2013
Statut
Membre
Dernière intervention
27 janvier 2013
-
Messages postés
4
Date d'inscription
samedi 26 janvier 2013
Statut
Membre
Dernière intervention
27 janvier 2013
-
Bonjour,

Pour calculer des échéances de factures à 30 jours fin de décade j'utilise la formule suivante :
=DATE(ANNEE(A1);MOIS(A1)+1+(JOUR(A1)>31);MAX(10;PLAFOND(MOD(JOUR(A1);31);10)))

Le résultat me convient sauf lorsque :
1 - le mois de facturation est de 31 jours
ex fact du 31/01/2012 éch 10/02/2012 ???
2 - le mois d'échéance est de 31 jours
ex fact du 22/02/2012 éch 30/03/2012 (je souhaiterais que ce soit le 31/03/2012) !

Quelqu'un a-t-il LA solution...
D'AVANCE MERCI A TOUS POUR VOTRE INVESTISSEMENT.

9 réponses

Messages postés
23814
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 janvier 2021
6 593
Bonjour,

si tu expliquais ce que sont des des échéances de factures à 30 jours fin de décade ?

ex fact du 22/02/2012 éch 30/03/2012 (je souhaiterais que ce soit le 31/03/2012) !
Pour moi une décade serait tous les 10 jours. Pourquoi 11 ici ? C'est plutôt une fin de mois.

ex fact du 31/01/2012 éch 10/02/2012 ???
La bonne réponse serait ?
Le mieux serait de fournir en plus plusieurs exemple de résultats attendus et la totalité des règles.

eric

Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 63550 internautes nous ont dit merci ce mois-ci

Messages postés
4
Date d'inscription
samedi 26 janvier 2013
Statut
Membre
Dernière intervention
27 janvier 2013
1
Cette formule est parfaite tout au long de l'année.

SAUF :
- pour toutes les factures datées entre le 21 janvier 2013 et le 31 janvier 2013 où j'ai une date d'échéance au 29 février 2013... alors que cette année il n'y a que 28 jours...
Bonsoir, si tu avais testé l'autre, tu n'aurais pas eu de problème.
Cordialement
Bonjour,
Je n'ai pas compris grand chose à ton histoire de "décade", mais je peux te proposer cette formule qui marche sur le VBA

Function DerJourMois(d) As Date
On Error GoTo Sortie
DerJourMois = DateAdd("m", 1, d) - Day(d)
Sortie:
End Function


"d" est normalement la date en cours, tu peux la remplacer par la date de fin de décade de ton calcul, et elle (la formule) te sortira le dernier jour du mois correspondant.
Soit X = DerJourMois(DateFinDecade)

D'autres plus compétents pourront sans doute nous expliquer pourquoi la formule ainsi rédigée fonctionne en VBA et non pas directement sur le tableau Excel. Pour moi ça reste un mystère.
Bonne suite
Messages postés
4
Date d'inscription
samedi 26 janvier 2013
Statut
Membre
Dernière intervention
27 janvier 2013
1
Explications :
30 jours fin de décade (conditions en pratique chez les maraichers)

1 - toutes les factures datées entre le 01 et le 10 auront une échéance au 10 du mois suivant
ex : facture du 02/01/2013 éch 10 fév 2013

2 - toutes les factures datées entre le 11 et le 20 auront une échéance au 20 du mois suivant
ex : facture du 12/01/2013 éch 20 fév 2013

3 - toutes les factures datées entre le 21 et le 31 (ou 30 si le mois est de 30 jours, 28ou29 pour février) auront une échéance au 31 du mois suivant (ou 30 si le mois est de 30 jours, 28ou29 pour février)
ex : facture du 22/01/2013 éch 28 fév 2013

Comme il y aura des factures datées du 31 (pour les mois où il y a 31 jours... il ne faut surtout pas les "oublier" si non ce sera un manque à gagner au niveau de la trésorerie !
Messages postés
2428
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
22 janvier 2021
923
Bonjour,
La formule suivante est peut-être simplifiable mais en tous cas à vérifier,
un cas particulier a pu m'échapper:
=SI(JOUR(A1)>20;FIN.MOIS(A1;1);SI(JOUR(A1)>10;MOIS.DECALER(DATE(ANNEE(A1);MOIS(A1);20);1);MOIS.DECALER(DATE(ANNEE(A1);MOIS(A1);10);1)))
Messages postés
2428
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
22 janvier 2021
923
Je n'ai pas cette erreur.
Essayez d'appliquer =FIN.MOIS(A1;1) pour le 22/01/2013!!!
Messages postés
16376
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
25 janvier 2021
3 118
Bonjour
=SI(JOUR(A1)>20;FIN.MOIS(A1;1);MOIS.DECALER(A1;1)-JOUR(A1)+SI(JOUR(A1)>10;20;10))

bonjour Tontong: m^me idée mais chuis à la bourre
Michel
Messages postés
2428
Date d'inscription
mercredi 3 février 2010
Statut
Membre
Dernière intervention
22 janvier 2021
923
C'est un peu plus élaboré mais plus court donc c'est mieux.
Messages postés
4
Date d'inscription
samedi 26 janvier 2013
Statut
Membre
Dernière intervention
27 janvier 2013
1
BRAVO !

L'OBJECTIF EST ATTEINT.

MERCI A TOUS POUR VOS CONTRIBUTIONS

(et ce ne sont pas des salades... parole de maraîcher)
Bonsoir,
Merci pour tes explications.

Alors la formule que je peux te proposer sera la suivante, à utiliser directement du coup:

Function Derjourdecade(d) As Date
On Error GoTo Sortie
If Day(d) < 11 Then
Derjourdecade = DateAdd("m", 1, d) - Day(d) + 10
ElseIf Day(d) < 21 Then
Derjourdecade = DateAdd("m", 1, d) - Day(d) + 20
ElseIf Day(d) > 20 Then
Derjourdecade = DateAdd("m", 2, d) - Day(d)
End If
Sortie:
End Function


Où "d" sera la date de facturation
Bonne suite