Bonjour à tous!
J'ai un programme qui me permet de calculer des echéances de paiement en
"jours nets" et en "fin de mois" grâce au module suivant:
Public Function echeance(dat, cond)
'trouve la date d'échéance d'un paiement au 'dat' à 'cond'
'exemple : =echeance(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
Mais certains fournisseurs demandent maintenant des paiements en fin de
décade, pourriez-vous m'aider en rajoutant la ligne nécessaire pour traiter
ça ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
bourby
Bonsoir,
voir le code ci-dessous. Il est conçu pour qu'une facture du 3 soit payée le 20, facture du 13 payée le 30; du 23 payée le 10 du mois suivant.
cordialement
Bourby
ATTENTION: puisqu'il y avait déjà un goto, j'en ai mis partout, à la place des if imbriqués; ce n'est pas populaire chez les programmeurs, mais dans ce contexte, ça se comprend plus facilement.
Maslaf wrote:
Bonjour à tous! J'ai un programme qui me permet de calculer des echéances de paiement en "jours nets" et en "fin de mois" grâce au module suivant: 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)) go to etiq ' nouveau!!
end if
If Right(cond, 5) = "JNETS" Then dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") - 1)) go to etiq ' nouveau!!
end if if right(cond,6)="DéCADE" then 'ou un autre code de ton choix if day(f5)>= 20 then datÚteserial(year(f5),month(f5)+1,10) else datÚteserial(year(f5),month(f5), 20+ f5 mod 10) end if go to etiq ' nouveau!! end if
dat = 0 'enlevé les end if
etiq: 'renvoyer le résultat à la fonction echeance = dat
End Function
Mais certains fournisseurs demandent maintenant des paiements en fin de décade, pourriez-vous m'aider en rajoutant la ligne nécessaire pour traiter ça ?
Merci beaucoup d'avance.
Maslaf
Bonsoir,
voir le code ci-dessous.
Il est conçu pour qu'une facture du 3 soit payée le 20,
facture du 13 payée le 30; du 23 payée le 10 du mois suivant.
cordialement
Bourby
ATTENTION:
puisqu'il y avait déjà un goto, j'en ai mis partout,
à la place des if imbriqués; ce n'est pas populaire
chez les programmeurs, mais dans ce contexte,
ça se comprend plus facilement.
Maslaf wrote:
Bonjour à tous!
J'ai un programme qui me permet de calculer des echéances de paiement en
"jours nets" et en "fin de mois" grâce au module suivant:
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))
go to etiq ' nouveau!!
end if
If Right(cond, 5) = "JNETS" Then
dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") - 1))
go to etiq ' nouveau!!
end if
if right(cond,6)="DéCADE" then 'ou un autre code de ton choix
if day(f5)>= 20 then
datÚteserial(year(f5),month(f5)+1,10)
else
datÚteserial(year(f5),month(f5), 20+ f5 mod 10)
end if
go to etiq ' nouveau!!
end if
dat = 0
'enlevé les end if
etiq:
'renvoyer le résultat à la fonction
echeance = dat
End Function
Mais certains fournisseurs demandent maintenant des paiements en fin de
décade, pourriez-vous m'aider en rajoutant la ligne nécessaire pour traiter
ça ?
voir le code ci-dessous. Il est conçu pour qu'une facture du 3 soit payée le 20, facture du 13 payée le 30; du 23 payée le 10 du mois suivant.
cordialement
Bourby
ATTENTION: puisqu'il y avait déjà un goto, j'en ai mis partout, à la place des if imbriqués; ce n'est pas populaire chez les programmeurs, mais dans ce contexte, ça se comprend plus facilement.
Maslaf wrote:
Bonjour à tous! J'ai un programme qui me permet de calculer des echéances de paiement en "jours nets" et en "fin de mois" grâce au module suivant: 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)) go to etiq ' nouveau!!
end if
If Right(cond, 5) = "JNETS" Then dat = f5 + CDbl(Left(cond, InStr(1, cond, "JNETS") - 1)) go to etiq ' nouveau!!
end if if right(cond,6)="DéCADE" then 'ou un autre code de ton choix if day(f5)>= 20 then datÚteserial(year(f5),month(f5)+1,10) else datÚteserial(year(f5),month(f5), 20+ f5 mod 10) end if go to etiq ' nouveau!! end if
dat = 0 'enlevé les end if
etiq: 'renvoyer le résultat à la fonction echeance = dat
End Function
Mais certains fournisseurs demandent maintenant des paiements en fin de décade, pourriez-vous m'aider en rajoutant la ligne nécessaire pour traiter ça ?