Que se passe-t'il? pourquoi n'ais-je aucune réponse de
mon post de cette après-midi? Merci de ne pas me bouder,
j'ai vraiment besoin de votre aide car ce nouvel élément
me fausse complètement mon prévisionnel de trésorerie!
Merci encore à ceux qui voudront bien m'aider.
Maslaf
Que se passe-t'il? pourquoi n'ais-je aucune réponse de
mon post de cette après-midi? Merci de ne pas me bouder,
j'ai vraiment besoin de votre aide car ce nouvel élément
me fausse complètement mon prévisionnel de trésorerie!
Merci encore à ceux qui voudront bien m'aider.
Maslaf
Que se passe-t'il? pourquoi n'ais-je aucune réponse de
mon post de cette après-midi? Merci de ne pas me bouder,
j'ai vraiment besoin de votre aide car ce nouvel élément
me fausse complètement mon prévisionnel de trésorerie!
Merci encore à ceux qui voudront bien m'aider.
Maslaf
Merci, anonymous, de l'intêret que tu portes à mon
problème, donc voici plus d'explications:
sur mon tableur j'ai notamment 2 colonnes dont l'une
contient les dates de facturation ( qui correspond
à "dat" ) et l'autre les conditions de paiement ( "cond").
une troisième colonne contient la date de paiement
calculée par le module ci-dessous. Les cellules de cette
colonne ont toutes comme formule: " = echeance
(date,cond) ".
Donc, en mettant dans la 1ère colonne la date de facture,
et dans la 2ème les conditions ( par ex.: 90JFDM" pour 90
jours fin de mois ou "60JNETS" pour 60 jours nets),
j'obtiens dans la cellule qui a comme formule " ìheance
(dat,cond)" la date de paiement.
Ce qu'il me faudrait, c'est une ligne en plus dans le
module ci-dessous qui commencerait par: " If Right(cond,
5) = "JFDEC" Then ..." pour les fins de décade.
J'espère avoir été clair.
Merci encore.
rappel du module actuel:
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat'
à 'cond'
'exemple : ìheance(A1;B1)
Application.Volatile
'si dat est manquant ou vide ou si cond est manquant ou
vide -> renvoit 0
If IsMissing(dat) Or IsMissing(cond) Or IsEmpty(dat) Or
IsEmpty(cond) Then
dat = 0: GoTo etiq
f5 = dat.Value: cond = cond.Value
If Right(cond, 4) = "JFDM" Then
dat = DateSerial(Year(f5), Month(f5) + 1, -1) + CDbl
(Left(cond, InStr(1,
cond, "JFDM") - 1))
Else
If Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") -
1))
Else
dat = 0
End If
End If
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
Merci, anonymous, de l'intêret que tu portes à mon
problème, donc voici plus d'explications:
sur mon tableur j'ai notamment 2 colonnes dont l'une
contient les dates de facturation ( qui correspond
à "dat" ) et l'autre les conditions de paiement ( "cond").
une troisième colonne contient la date de paiement
calculée par le module ci-dessous. Les cellules de cette
colonne ont toutes comme formule: " = echeance
(date,cond) ".
Donc, en mettant dans la 1ère colonne la date de facture,
et dans la 2ème les conditions ( par ex.: 90JFDM" pour 90
jours fin de mois ou "60JNETS" pour 60 jours nets),
j'obtiens dans la cellule qui a comme formule " ìheance
(dat,cond)" la date de paiement.
Ce qu'il me faudrait, c'est une ligne en plus dans le
module ci-dessous qui commencerait par: " If Right(cond,
5) = "JFDEC" Then ..." pour les fins de décade.
J'espère avoir été clair.
Merci encore.
rappel du module actuel:
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat'
à 'cond'
'exemple : ìheance(A1;B1)
Application.Volatile
'si dat est manquant ou vide ou si cond est manquant ou
vide -> renvoit 0
If IsMissing(dat) Or IsMissing(cond) Or IsEmpty(dat) Or
IsEmpty(cond) Then
dat = 0: GoTo etiq
f5 = dat.Value: cond = cond.Value
If Right(cond, 4) = "JFDM" Then
dat = DateSerial(Year(f5), Month(f5) + 1, -1) + CDbl
(Left(cond, InStr(1,
cond, "JFDM") - 1))
Else
If Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") -
1))
Else
dat = 0
End If
End If
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
Merci, anonymous, de l'intêret que tu portes à mon
problème, donc voici plus d'explications:
sur mon tableur j'ai notamment 2 colonnes dont l'une
contient les dates de facturation ( qui correspond
à "dat" ) et l'autre les conditions de paiement ( "cond").
une troisième colonne contient la date de paiement
calculée par le module ci-dessous. Les cellules de cette
colonne ont toutes comme formule: " = echeance
(date,cond) ".
Donc, en mettant dans la 1ère colonne la date de facture,
et dans la 2ème les conditions ( par ex.: 90JFDM" pour 90
jours fin de mois ou "60JNETS" pour 60 jours nets),
j'obtiens dans la cellule qui a comme formule " ìheance
(dat,cond)" la date de paiement.
Ce qu'il me faudrait, c'est une ligne en plus dans le
module ci-dessous qui commencerait par: " If Right(cond,
5) = "JFDEC" Then ..." pour les fins de décade.
J'espère avoir été clair.
Merci encore.
rappel du module actuel:
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat'
à 'cond'
'exemple : ìheance(A1;B1)
Application.Volatile
'si dat est manquant ou vide ou si cond est manquant ou
vide -> renvoit 0
If IsMissing(dat) Or IsMissing(cond) Or IsEmpty(dat) Or
IsEmpty(cond) Then
dat = 0: GoTo etiq
f5 = dat.Value: cond = cond.Value
If Right(cond, 4) = "JFDM" Then
dat = DateSerial(Year(f5), Month(f5) + 1, -1) + CDbl
(Left(cond, InStr(1,
cond, "JFDM") - 1))
Else
If Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") -
1))
Else
dat = 0
End If
End If
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
bonjour,
un truc comme ca si j'ai vraiment tout compris à ta demande. Mais si c'est
ca, c'est tellement facile et comme tu as l'air de connaitre un peu VBA je
me
demande comment tu n'as pas pu trouver donc je suis dubitatif sur ma
réponse.
Je suis resté dasn l'esprit du code initial mais il pourrait sans doute
etre
plus clair.
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat'
'Ã 'cond'
'exemple : ìheance(A1;B1)
Application.Volatile
'si dat est manquant ou vide ou si cond est manquant ou vide -> renvoit 0
If IsMissing(dat) Or IsMissing(cond) Or IsEmpty(dat) Or IsEmpty(cond) Then
dat = 0: GoTo etiq
f5 = dat.Value: cond = cond.Value
If Right(cond, 4) = "JFDM" Then
dat = DateSerial(Year(f5), Month(f5) + 1, -1) + CDbl(Left(cond,
InStr(1,
cond, "JFDM") - 1))
Else
If Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") - 1))
ElseIf Right(cond, 5) = "JFDEC" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JFDEC") - 1))
Else
dat = 0
End If
End If
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
A+Merci, anonymous, de l'intêret que tu portes à mon
problème, donc voici plus d'explications:
sur mon tableur j'ai notamment 2 colonnes dont l'une
contient les dates de facturation ( qui correspond
à "dat" ) et l'autre les conditions de paiement ( "cond").
une troisième colonne contient la date de paiement
calculée par le module ci-dessous. Les cellules de cette
colonne ont toutes comme formule: " = echeance
(date,cond) ".
Donc, en mettant dans la 1ère colonne la date de facture,
et dans la 2ème les conditions ( par ex.: 90JFDM" pour 90
jours fin de mois ou "60JNETS" pour 60 jours nets),
j'obtiens dans la cellule qui a comme formule " ìheance
(dat,cond)" la date de paiement.
Ce qu'il me faudrait, c'est une ligne en plus dans le
module ci-dessous qui commencerait par: " If Right(cond,
5) = "JFDEC" Then ..." pour les fins de décade.
J'espère avoir été clair.
Merci encore.
rappel du module actuel:
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat'
à 'cond'
'exemple : ìheance(A1;B1)
Application.Volatile
'si dat est manquant ou vide ou si cond est manquant ou
vide -> renvoit 0
If IsMissing(dat) Or IsMissing(cond) Or IsEmpty(dat) Or
IsEmpty(cond) Then
dat = 0: GoTo etiq
f5 = dat.Value: cond = cond.Value
If Right(cond, 4) = "JFDM" Then
dat = DateSerial(Year(f5), Month(f5) + 1, -1) + CDbl
(Left(cond, InStr(1,
cond, "JFDM") - 1))
Else
If Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") -
1))
Else
dat = 0
End If
End If
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
bonjour,
un truc comme ca si j'ai vraiment tout compris à ta demande. Mais si c'est
ca, c'est tellement facile et comme tu as l'air de connaitre un peu VBA je
me
demande comment tu n'as pas pu trouver donc je suis dubitatif sur ma
réponse.
Je suis resté dasn l'esprit du code initial mais il pourrait sans doute
etre
plus clair.
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat'
'Ã 'cond'
'exemple : ìheance(A1;B1)
Application.Volatile
'si dat est manquant ou vide ou si cond est manquant ou vide -> renvoit 0
If IsMissing(dat) Or IsMissing(cond) Or IsEmpty(dat) Or IsEmpty(cond) Then
dat = 0: GoTo etiq
f5 = dat.Value: cond = cond.Value
If Right(cond, 4) = "JFDM" Then
dat = DateSerial(Year(f5), Month(f5) + 1, -1) + CDbl(Left(cond,
InStr(1,
cond, "JFDM") - 1))
Else
If Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") - 1))
ElseIf Right(cond, 5) = "JFDEC" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JFDEC") - 1))
Else
dat = 0
End If
End If
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
A+
Merci, anonymous, de l'intêret que tu portes à mon
problème, donc voici plus d'explications:
sur mon tableur j'ai notamment 2 colonnes dont l'une
contient les dates de facturation ( qui correspond
à "dat" ) et l'autre les conditions de paiement ( "cond").
une troisième colonne contient la date de paiement
calculée par le module ci-dessous. Les cellules de cette
colonne ont toutes comme formule: " = echeance
(date,cond) ".
Donc, en mettant dans la 1ère colonne la date de facture,
et dans la 2ème les conditions ( par ex.: 90JFDM" pour 90
jours fin de mois ou "60JNETS" pour 60 jours nets),
j'obtiens dans la cellule qui a comme formule " ìheance
(dat,cond)" la date de paiement.
Ce qu'il me faudrait, c'est une ligne en plus dans le
module ci-dessous qui commencerait par: " If Right(cond,
5) = "JFDEC" Then ..." pour les fins de décade.
J'espère avoir été clair.
Merci encore.
rappel du module actuel:
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat'
à 'cond'
'exemple : ìheance(A1;B1)
Application.Volatile
'si dat est manquant ou vide ou si cond est manquant ou
vide -> renvoit 0
If IsMissing(dat) Or IsMissing(cond) Or IsEmpty(dat) Or
IsEmpty(cond) Then
dat = 0: GoTo etiq
f5 = dat.Value: cond = cond.Value
If Right(cond, 4) = "JFDM" Then
dat = DateSerial(Year(f5), Month(f5) + 1, -1) + CDbl
(Left(cond, InStr(1,
cond, "JFDM") - 1))
Else
If Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") -
1))
Else
dat = 0
End If
End If
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
bonjour,
un truc comme ca si j'ai vraiment tout compris à ta demande. Mais si c'est
ca, c'est tellement facile et comme tu as l'air de connaitre un peu VBA je
me
demande comment tu n'as pas pu trouver donc je suis dubitatif sur ma
réponse.
Je suis resté dasn l'esprit du code initial mais il pourrait sans doute
etre
plus clair.
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat'
'Ã 'cond'
'exemple : ìheance(A1;B1)
Application.Volatile
'si dat est manquant ou vide ou si cond est manquant ou vide -> renvoit 0
If IsMissing(dat) Or IsMissing(cond) Or IsEmpty(dat) Or IsEmpty(cond) Then
dat = 0: GoTo etiq
f5 = dat.Value: cond = cond.Value
If Right(cond, 4) = "JFDM" Then
dat = DateSerial(Year(f5), Month(f5) + 1, -1) + CDbl(Left(cond,
InStr(1,
cond, "JFDM") - 1))
Else
If Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") - 1))
ElseIf Right(cond, 5) = "JFDEC" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JFDEC") - 1))
Else
dat = 0
End If
End If
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
A+Merci, anonymous, de l'intêret que tu portes à mon
problème, donc voici plus d'explications:
sur mon tableur j'ai notamment 2 colonnes dont l'une
contient les dates de facturation ( qui correspond
à "dat" ) et l'autre les conditions de paiement ( "cond").
une troisième colonne contient la date de paiement
calculée par le module ci-dessous. Les cellules de cette
colonne ont toutes comme formule: " = echeance
(date,cond) ".
Donc, en mettant dans la 1ère colonne la date de facture,
et dans la 2ème les conditions ( par ex.: 90JFDM" pour 90
jours fin de mois ou "60JNETS" pour 60 jours nets),
j'obtiens dans la cellule qui a comme formule " ìheance
(dat,cond)" la date de paiement.
Ce qu'il me faudrait, c'est une ligne en plus dans le
module ci-dessous qui commencerait par: " If Right(cond,
5) = "JFDEC" Then ..." pour les fins de décade.
J'espère avoir été clair.
Merci encore.
rappel du module actuel:
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat'
à 'cond'
'exemple : ìheance(A1;B1)
Application.Volatile
'si dat est manquant ou vide ou si cond est manquant ou
vide -> renvoit 0
If IsMissing(dat) Or IsMissing(cond) Or IsEmpty(dat) Or
IsEmpty(cond) Then
dat = 0: GoTo etiq
f5 = dat.Value: cond = cond.Value
If Right(cond, 4) = "JFDM" Then
dat = DateSerial(Year(f5), Month(f5) + 1, -1) + CDbl
(Left(cond, InStr(1,
cond, "JFDM") - 1))
Else
If Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") -
1))
Else
dat = 0
End If
End If
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
Bonjour!
Alors, je vais essayer d'être clair:
il y a 3 décades dans un mois.
un délai de paiement peut être par exemple encodé en "60JFDEC", ce qui
signifie que l'on compte 60 jours nets à compter de la date de facturation
et
si ça tombe par exemple le 5 du mois, le paiement sera fait le 10; si ça
tombe le 17 du mois, le paiement sera fait le 20.
donc chaque fois à la fin de la décade immédiatement supérieure au jour.
si vous le souhaitez, je peux vous envoyer le classeur afin que puissiez
le
"bidouiller" et le faire fonctionner pour mieux comprendre .
bonne journée.
Bonjour!
Alors, je vais essayer d'être clair:
il y a 3 décades dans un mois.
un délai de paiement peut être par exemple encodé en "60JFDEC", ce qui
signifie que l'on compte 60 jours nets à compter de la date de facturation
et
si ça tombe par exemple le 5 du mois, le paiement sera fait le 10; si ça
tombe le 17 du mois, le paiement sera fait le 20.
donc chaque fois à la fin de la décade immédiatement supérieure au jour.
si vous le souhaitez, je peux vous envoyer le classeur afin que puissiez
le
"bidouiller" et le faire fonctionner pour mieux comprendre .
bonne journée.
Bonjour!
Alors, je vais essayer d'être clair:
il y a 3 décades dans un mois.
un délai de paiement peut être par exemple encodé en "60JFDEC", ce qui
signifie que l'on compte 60 jours nets à compter de la date de facturation
et
si ça tombe par exemple le 5 du mois, le paiement sera fait le 10; si ça
tombe le 17 du mois, le paiement sera fait le 20.
donc chaque fois à la fin de la décade immédiatement supérieure au jour.
si vous le souhaitez, je peux vous envoyer le classeur afin que puissiez
le
"bidouiller" et le faire fonctionner pour mieux comprendre .
bonne journée.
dat = DateSerial(Year(f5), Month(f5), 10)
dat = DateSerial(Year(f5), Month(f5), 20)
dat = DateSerial(Year(f5), Month(f5) + 1, -1)
Par
dat = DateSerial(Year(dat), Month(dat), 10)
ElseIf Day(dat) < 21 Then
dat = DateSerial(Year(dat), Month(dat), 20)
Else
dat = DateSerial(Year(dat), Month(dat) + 1, -1)
AMHA , tes explications sont toujours incomplètes ;-)
Quelle est la décade du 31/1?
Quelle est la date d'échéance du 25/2?
Bref, voila comment je ferais si c'était pour moi
___________________________________________________________
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat'à 'cond'
'exemple : ìheance(A1;B1)
Application.Volatile
'si dat est manquant ou vide ou si cond est manquant ouvide -> renvoit 0
If IsMissing(dat) Or IsMissing(cond) Or IsEmpty(dat) Or IsEmpty(cond) Then
dat = 0: GoTo etiq
f5 = dat
If Right(cond, 4) = "JFDM" Then
dat = DateSerial(Year(f5), Month(f5) + 1, -1) + CDbl(Left(cond, InStr(1,
cond, "JFDM") - 1))
ElseIf Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") - 1))
ElseIf Right(cond, 5) = "JFDEC" Then
dat = f5 + CInt(Left(cond, InStr(1, cond, "JFDEC") - 1))
If Day(dat) < 11 Then
dat = DateSerial(Year(f5), Month(f5), 10)
ElseIf Day(dat) < 21 Then
dat = DateSerial(Year(f5), Month(f5), 20)
Else
dat = DateSerial(Year(f5), Month(f5) + 1, -1)
End If
Else
dat = 0
End If
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
________________________________________________________
A+
Paul V
"Maslaf" a écrit dans le message de
news:
Bonjour!
Alors, je vais essayer d'être clair:
il y a 3 décades dans un mois.
un délai de paiement peut être par exemple encodé en "60JFDEC", ce qui
signifie que l'on compte 60 jours nets à compter de la date de
facturation et
si ça tombe par exemple le 5 du mois, le paiement sera fait le 10; si ça
tombe le 17 du mois, le paiement sera fait le 20.
donc chaque fois à la fin de la décade immédiatement supérieure au jour.
si vous le souhaitez, je peux vous envoyer le classeur afin que puissiez
le
"bidouiller" et le faire fonctionner pour mieux comprendre .
bonne journée.
dat = DateSerial(Year(f5), Month(f5), 10)
dat = DateSerial(Year(f5), Month(f5), 20)
dat = DateSerial(Year(f5), Month(f5) + 1, -1)
Par
dat = DateSerial(Year(dat), Month(dat), 10)
ElseIf Day(dat) < 21 Then
dat = DateSerial(Year(dat), Month(dat), 20)
Else
dat = DateSerial(Year(dat), Month(dat) + 1, -1)
AMHA , tes explications sont toujours incomplètes ;-)
Quelle est la décade du 31/1?
Quelle est la date d'échéance du 25/2?
Bref, voila comment je ferais si c'était pour moi
___________________________________________________________
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat'à 'cond'
'exemple : ìheance(A1;B1)
Application.Volatile
'si dat est manquant ou vide ou si cond est manquant ouvide -> renvoit 0
If IsMissing(dat) Or IsMissing(cond) Or IsEmpty(dat) Or IsEmpty(cond) Then
dat = 0: GoTo etiq
f5 = dat
If Right(cond, 4) = "JFDM" Then
dat = DateSerial(Year(f5), Month(f5) + 1, -1) + CDbl(Left(cond, InStr(1,
cond, "JFDM") - 1))
ElseIf Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") - 1))
ElseIf Right(cond, 5) = "JFDEC" Then
dat = f5 + CInt(Left(cond, InStr(1, cond, "JFDEC") - 1))
If Day(dat) < 11 Then
dat = DateSerial(Year(f5), Month(f5), 10)
ElseIf Day(dat) < 21 Then
dat = DateSerial(Year(f5), Month(f5), 20)
Else
dat = DateSerial(Year(f5), Month(f5) + 1, -1)
End If
Else
dat = 0
End If
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
________________________________________________________
A+
Paul V
"Maslaf" <Maslaf@discussions.microsoft.com> a écrit dans le message de
news: 2147076E-113F-481C-87B8-8CEC6F96C1D8@microsoft.com...
Bonjour!
Alors, je vais essayer d'être clair:
il y a 3 décades dans un mois.
un délai de paiement peut être par exemple encodé en "60JFDEC", ce qui
signifie que l'on compte 60 jours nets à compter de la date de
facturation et
si ça tombe par exemple le 5 du mois, le paiement sera fait le 10; si ça
tombe le 17 du mois, le paiement sera fait le 20.
donc chaque fois à la fin de la décade immédiatement supérieure au jour.
si vous le souhaitez, je peux vous envoyer le classeur afin que puissiez
le
"bidouiller" et le faire fonctionner pour mieux comprendre .
bonne journée.
dat = DateSerial(Year(f5), Month(f5), 10)
dat = DateSerial(Year(f5), Month(f5), 20)
dat = DateSerial(Year(f5), Month(f5) + 1, -1)
Par
dat = DateSerial(Year(dat), Month(dat), 10)
ElseIf Day(dat) < 21 Then
dat = DateSerial(Year(dat), Month(dat), 20)
Else
dat = DateSerial(Year(dat), Month(dat) + 1, -1)
AMHA , tes explications sont toujours incomplètes ;-)
Quelle est la décade du 31/1?
Quelle est la date d'échéance du 25/2?
Bref, voila comment je ferais si c'était pour moi
___________________________________________________________
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat'à 'cond'
'exemple : ìheance(A1;B1)
Application.Volatile
'si dat est manquant ou vide ou si cond est manquant ouvide -> renvoit 0
If IsMissing(dat) Or IsMissing(cond) Or IsEmpty(dat) Or IsEmpty(cond) Then
dat = 0: GoTo etiq
f5 = dat
If Right(cond, 4) = "JFDM" Then
dat = DateSerial(Year(f5), Month(f5) + 1, -1) + CDbl(Left(cond, InStr(1,
cond, "JFDM") - 1))
ElseIf Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") - 1))
ElseIf Right(cond, 5) = "JFDEC" Then
dat = f5 + CInt(Left(cond, InStr(1, cond, "JFDEC") - 1))
If Day(dat) < 11 Then
dat = DateSerial(Year(f5), Month(f5), 10)
ElseIf Day(dat) < 21 Then
dat = DateSerial(Year(f5), Month(f5), 20)
Else
dat = DateSerial(Year(f5), Month(f5) + 1, -1)
End If
Else
dat = 0
End If
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
________________________________________________________
A+
Paul V
"Maslaf" a écrit dans le message de
news:
Bonjour!
Alors, je vais essayer d'être clair:
il y a 3 décades dans un mois.
un délai de paiement peut être par exemple encodé en "60JFDEC", ce qui
signifie que l'on compte 60 jours nets à compter de la date de
facturation et
si ça tombe par exemple le 5 du mois, le paiement sera fait le 10; si ça
tombe le 17 du mois, le paiement sera fait le 20.
donc chaque fois à la fin de la décade immédiatement supérieure au jour.
si vous le souhaitez, je peux vous envoyer le classeur afin que puissiez
le
"bidouiller" et le faire fonctionner pour mieux comprendre .
bonne journée.