Bonjour,
J'aimerais savoir, en fonction de la date actuelle, et de=20
la date de naissance de la personne, combien de jours il=20
reste avant sa f=EAte.
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
Eric
Bonjour Alexandre
A partir de la procédure donnant la date d'anniversaire sur le site de Raymond (merci encore), ca donnerait:
Public Function NbJoursAvantAnniversaire(dteDate As Date) As Integer Dim DateCetteAnnee As Date DateCetteAnnee = DateSerial(Year(Date), Month(dteDate), Day(dteDate)) If DateCetteAnnee < Date Then DateCetteAnnee = DateAdd("yyyy", 1, DateCetteAnnee) End If NbJoursAvantAnniversaire = DateDiff("d", Date, DateCetteAnnee) End Function
Bonjour, J'aimerais savoir, en fonction de la date actuelle, et de la date de naissance de la personne, combien de jours il reste avant sa fête.
J'ai regardé à : http://access.vba.free.fr/calculs.htm
mais ce qu'il y avait pour la fête ne donne pas ce que je veux, mais plutôt la date du prochain anniversaire.
J'ai pensé à un code vba, mais sans succès,
Merci, Alexandre
Bonjour Alexandre
A partir de la procédure donnant la date d'anniversaire sur le site de
Raymond (merci encore), ca donnerait:
Public Function NbJoursAvantAnniversaire(dteDate As Date) As Integer
Dim DateCetteAnnee As Date
DateCetteAnnee = DateSerial(Year(Date), Month(dteDate), Day(dteDate))
If DateCetteAnnee < Date Then
DateCetteAnnee = DateAdd("yyyy", 1, DateCetteAnnee)
End If
NbJoursAvantAnniversaire = DateDiff("d", Date, DateCetteAnnee)
End Function
A partir de la procédure donnant la date d'anniversaire sur le site de Raymond (merci encore), ca donnerait:
Public Function NbJoursAvantAnniversaire(dteDate As Date) As Integer Dim DateCetteAnnee As Date DateCetteAnnee = DateSerial(Year(Date), Month(dteDate), Day(dteDate)) If DateCetteAnnee < Date Then DateCetteAnnee = DateAdd("yyyy", 1, DateCetteAnnee) End If NbJoursAvantAnniversaire = DateDiff("d", Date, DateCetteAnnee) End Function
A partir de la procédure donnant la date d'anniversaire sur le site de Raymond
lire Fonction et non Procédure.
(Chaque terme a son importance)
Eric
Alexandre
Salut!
Merci beaucoup, Il y a cependant quelquechose qui ne fonctionne pas.
Voici mes champs : Date de naissance: [DateNaissance] Mon controle de date d'aujourdhui: Source:Date() , Nom:CeJour
J'ai mis ce code: Function NbJoursAvantAnniversaire(DateNaissance As Date) As Integer Dim DateCetteAnnee As Date DateCetteAnnee = DateSerial(Year(CeJour), Month (DateNaissance), Day(DateNaissance)) If DateCetteAnnee < CeJour Then DateCetteAnnee = DateAdd("yyyy", 1, DateCetteAnnee) End If NbJoursAvantAnniversaire = DateDiff("d", CeJour, DateCetteAnnee) End Function
Et comme controle pour voir l'affichage =NbJoursAvantAnniversaire([DateCetteAnnee];Date())
Merci, Alexandre
Salut!
Merci beaucoup, Il y a cependant quelquechose qui ne
fonctionne pas.
Voici mes champs : Date de naissance: [DateNaissance]
Mon controle de date d'aujourdhui: Source:Date() ,
Nom:CeJour
J'ai mis ce code:
Function NbJoursAvantAnniversaire(DateNaissance As Date)
As Integer
Dim DateCetteAnnee As Date
DateCetteAnnee = DateSerial(Year(CeJour), Month
(DateNaissance), Day(DateNaissance))
If DateCetteAnnee < CeJour Then
DateCetteAnnee = DateAdd("yyyy", 1, DateCetteAnnee)
End If
NbJoursAvantAnniversaire = DateDiff("d", CeJour,
DateCetteAnnee)
End Function
Et comme controle pour voir l'affichage
=NbJoursAvantAnniversaire([DateCetteAnnee];Date())
Merci beaucoup, Il y a cependant quelquechose qui ne fonctionne pas.
Voici mes champs : Date de naissance: [DateNaissance] Mon controle de date d'aujourdhui: Source:Date() , Nom:CeJour
J'ai mis ce code: Function NbJoursAvantAnniversaire(DateNaissance As Date) As Integer Dim DateCetteAnnee As Date DateCetteAnnee = DateSerial(Year(CeJour), Month (DateNaissance), Day(DateNaissance)) If DateCetteAnnee < CeJour Then DateCetteAnnee = DateAdd("yyyy", 1, DateCetteAnnee) End If NbJoursAvantAnniversaire = DateDiff("d", CeJour, DateCetteAnnee) End Function
Et comme controle pour voir l'affichage =NbJoursAvantAnniversaire([DateCetteAnnee];Date())
Merci, Alexandre
Eric
Bonjour Alexandre,
La fonction que je t'ai fait passer n'a besoin que d'un seul argument : DateNaissance. Tu l'as modifiée et du coup elle ne marche plus. La valeur de CeJour n'est pas utile car c'est la date-sytème, valeur volatile par excellence et on la connait à tout instant. De plus dans ta fonction, l'argument CeJour n'étant pas passé, la fonction ne le connait pas.
Reprends tel quelle la fonction de mon post précédent.
Pour l'utiliser dans une requête tu mettras : BirthdayDans:NbJoursAvantAnniversaire([DateNaissance])
Pour l'utiliser dans un contrôle indépendant de formulaire basé sur la table contenant les dates de naissance, en source de ce contrôle tu mettras: =NbJoursAvantAnniversaire([DateNaissance])
Dans les 2 cas, tu passes à l'argument dteDate de la fonction NbJoursAvantAnniversaire la valeur de DateNaissance.
Remarque: Ton contrôle CeJour n'est pas utile pour déterminer le nb de jours. A toi de voir si tu veux faire apparaitre sur ton formulaire la date courante.
C'est ok ?
A+ Eric
PS: dans la fonction NbJoursAvantAnniversaire(dteDate As Date)
dteDate as Date : ici Date représente le type de l'argument dteDate que tu passes à la fonction, comme sur la ligne Dim DateCetteAnnee As Date
Dans l'instruction :If DateCetteAnnee < Date Then ... Date est la fonction VB qui retourne la Date-système
Merci beaucoup, Il y a cependant quelquechose qui ne fonctionne pas.
Voici mes champs : Date de naissance: [DateNaissance] Mon controle de date d'aujourdhui: Source:Date() , Nom:CeJour
J'ai mis ce code: Function NbJoursAvantAnniversaire(DateNaissance As Date) As Integer Dim DateCetteAnnee As Date DateCetteAnnee = DateSerial(Year(CeJour), Month (DateNaissance), Day(DateNaissance)) If DateCetteAnnee < CeJour Then DateCetteAnnee = DateAdd("yyyy", 1, DateCetteAnnee) End If NbJoursAvantAnniversaire = DateDiff("d", CeJour, DateCetteAnnee) End Function
Et comme controle pour voir l'affichage =NbJoursAvantAnniversaire([DateCetteAnnee];Date())
Merci, Alexandre
Bonjour Alexandre,
La fonction que je t'ai fait passer n'a besoin que d'un seul argument :
DateNaissance. Tu l'as modifiée et du coup elle ne marche plus.
La valeur de CeJour n'est pas utile car c'est la date-sytème, valeur
volatile par excellence et on la connait à tout instant. De plus dans ta
fonction, l'argument CeJour n'étant pas passé, la fonction ne le connait
pas.
Reprends tel quelle la fonction de mon post précédent.
Pour l'utiliser dans une requête tu mettras :
BirthdayDans:NbJoursAvantAnniversaire([DateNaissance])
Pour l'utiliser dans un contrôle indépendant de formulaire basé sur la
table contenant les dates de naissance, en source de ce contrôle tu
mettras:
=NbJoursAvantAnniversaire([DateNaissance])
Dans les 2 cas, tu passes à l'argument dteDate de la fonction
NbJoursAvantAnniversaire la valeur de DateNaissance.
Remarque: Ton contrôle CeJour n'est pas utile pour déterminer le nb de
jours. A toi de voir si tu veux faire apparaitre sur ton formulaire la
date courante.
C'est ok ?
A+
Eric
PS: dans la fonction NbJoursAvantAnniversaire(dteDate As Date)
dteDate as Date : ici Date représente le type de l'argument dteDate que
tu passes à la fonction, comme sur la ligne Dim DateCetteAnnee As Date
Dans l'instruction :If DateCetteAnnee < Date Then ...
Date est la fonction VB qui retourne la Date-système
Merci beaucoup, Il y a cependant quelquechose qui ne
fonctionne pas.
Voici mes champs : Date de naissance: [DateNaissance]
Mon controle de date d'aujourdhui: Source:Date() ,
Nom:CeJour
J'ai mis ce code:
Function NbJoursAvantAnniversaire(DateNaissance As Date)
As Integer
Dim DateCetteAnnee As Date
DateCetteAnnee = DateSerial(Year(CeJour), Month
(DateNaissance), Day(DateNaissance))
If DateCetteAnnee < CeJour Then
DateCetteAnnee = DateAdd("yyyy", 1, DateCetteAnnee)
End If
NbJoursAvantAnniversaire = DateDiff("d", CeJour,
DateCetteAnnee)
End Function
Et comme controle pour voir l'affichage
=NbJoursAvantAnniversaire([DateCetteAnnee];Date())
La fonction que je t'ai fait passer n'a besoin que d'un seul argument : DateNaissance. Tu l'as modifiée et du coup elle ne marche plus. La valeur de CeJour n'est pas utile car c'est la date-sytème, valeur volatile par excellence et on la connait à tout instant. De plus dans ta fonction, l'argument CeJour n'étant pas passé, la fonction ne le connait pas.
Reprends tel quelle la fonction de mon post précédent.
Pour l'utiliser dans une requête tu mettras : BirthdayDans:NbJoursAvantAnniversaire([DateNaissance])
Pour l'utiliser dans un contrôle indépendant de formulaire basé sur la table contenant les dates de naissance, en source de ce contrôle tu mettras: =NbJoursAvantAnniversaire([DateNaissance])
Dans les 2 cas, tu passes à l'argument dteDate de la fonction NbJoursAvantAnniversaire la valeur de DateNaissance.
Remarque: Ton contrôle CeJour n'est pas utile pour déterminer le nb de jours. A toi de voir si tu veux faire apparaitre sur ton formulaire la date courante.
C'est ok ?
A+ Eric
PS: dans la fonction NbJoursAvantAnniversaire(dteDate As Date)
dteDate as Date : ici Date représente le type de l'argument dteDate que tu passes à la fonction, comme sur la ligne Dim DateCetteAnnee As Date
Dans l'instruction :If DateCetteAnnee < Date Then ... Date est la fonction VB qui retourne la Date-système
Merci beaucoup, Il y a cependant quelquechose qui ne fonctionne pas.
Voici mes champs : Date de naissance: [DateNaissance] Mon controle de date d'aujourdhui: Source:Date() , Nom:CeJour
J'ai mis ce code: Function NbJoursAvantAnniversaire(DateNaissance As Date) As Integer Dim DateCetteAnnee As Date DateCetteAnnee = DateSerial(Year(CeJour), Month (DateNaissance), Day(DateNaissance)) If DateCetteAnnee < CeJour Then DateCetteAnnee = DateAdd("yyyy", 1, DateCetteAnnee) End If NbJoursAvantAnniversaire = DateDiff("d", CeJour, DateCetteAnnee) End Function
Et comme controle pour voir l'affichage =NbJoursAvantAnniversaire([DateCetteAnnee];Date())
Merci, Alexandre
Raymond [mvp]
Bonjour eric. Merci pour la fonction. voir: http://access.vba.free.fr/calculs.htm#nombre_de_jours_avant_prochain_anniversaire
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Eric" a écrit dans le message de news:
Bonjour Alexandre,
La fonction que je t'ai fait passer n'a besoin que d'un seul argument : DateNaissance. Tu l'as modifiée et du coup elle ne marche plus. La valeur de CeJour n'est pas utile car c'est la date-sytème, valeur volatile par excellence et on la connait à tout instant. De plus dans ta fonction, l'argument CeJour n'étant pas passé, la fonction ne le connait pas.
Reprends tel quelle la fonction de mon post précédent.
Pour l'utiliser dans une requête tu mettras : BirthdayDans:NbJoursAvantAnniversaire([DateNaissance])
Pour l'utiliser dans un contrôle indépendant de formulaire basé sur la table contenant les dates de naissance, en source de ce contrôle tu mettras: =NbJoursAvantAnniversaire([DateNaissance])
Dans les 2 cas, tu passes à l'argument dteDate de la fonction NbJoursAvantAnniversaire la valeur de DateNaissance.
Remarque: Ton contrôle CeJour n'est pas utile pour déterminer le nb de jours. A toi de voir si tu veux faire apparaitre sur ton formulaire la date courante.
C'est ok ?
A+ Eric
PS: dans la fonction NbJoursAvantAnniversaire(dteDate As Date)
dteDate as Date : ici Date représente le type de l'argument dteDate que tu passes à la fonction, comme sur la ligne Dim DateCetteAnnee As Date
Dans l'instruction :If DateCetteAnnee < Date Then ... Date est la fonction VB qui retourne la Date-système
Merci beaucoup, Il y a cependant quelquechose qui ne fonctionne pas.
Voici mes champs : Date de naissance: [DateNaissance] Mon controle de date d'aujourdhui: Source:Date() , Nom:CeJour
J'ai mis ce code: Function NbJoursAvantAnniversaire(DateNaissance As Date) As Integer Dim DateCetteAnnee As Date DateCetteAnnee = DateSerial(Year(CeJour), Month (DateNaissance), Day(DateNaissance)) If DateCetteAnnee < CeJour Then DateCetteAnnee = DateAdd("yyyy", 1, DateCetteAnnee) End If NbJoursAvantAnniversaire = DateDiff("d", CeJour, DateCetteAnnee) End Function
Et comme controle pour voir l'affichage =NbJoursAvantAnniversaire([DateCetteAnnee];Date())
Merci, Alexandre
Bonjour eric.
Merci pour la fonction.
voir:
http://access.vba.free.fr/calculs.htm#nombre_de_jours_avant_prochain_anniversaire
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum
"Eric" <f_framZZ@hotmail.com> a écrit dans le message de
news:XnF95266E5D566CEfframZZhotmailcom@207.46.248.16...
Bonjour Alexandre,
La fonction que je t'ai fait passer n'a besoin que d'un seul argument :
DateNaissance. Tu l'as modifiée et du coup elle ne marche plus.
La valeur de CeJour n'est pas utile car c'est la date-sytème, valeur
volatile par excellence et on la connait à tout instant. De plus dans ta
fonction, l'argument CeJour n'étant pas passé, la fonction ne le connait
pas.
Reprends tel quelle la fonction de mon post précédent.
Pour l'utiliser dans une requête tu mettras :
BirthdayDans:NbJoursAvantAnniversaire([DateNaissance])
Pour l'utiliser dans un contrôle indépendant de formulaire basé sur la
table contenant les dates de naissance, en source de ce contrôle tu
mettras:
=NbJoursAvantAnniversaire([DateNaissance])
Dans les 2 cas, tu passes à l'argument dteDate de la fonction
NbJoursAvantAnniversaire la valeur de DateNaissance.
Remarque: Ton contrôle CeJour n'est pas utile pour déterminer le nb de
jours. A toi de voir si tu veux faire apparaitre sur ton formulaire la
date courante.
C'est ok ?
A+
Eric
PS: dans la fonction NbJoursAvantAnniversaire(dteDate As Date)
dteDate as Date : ici Date représente le type de l'argument dteDate que
tu passes à la fonction, comme sur la ligne Dim DateCetteAnnee As Date
Dans l'instruction :If DateCetteAnnee < Date Then ...
Date est la fonction VB qui retourne la Date-système
Merci beaucoup, Il y a cependant quelquechose qui ne
fonctionne pas.
Voici mes champs : Date de naissance: [DateNaissance]
Mon controle de date d'aujourdhui: Source:Date() ,
Nom:CeJour
J'ai mis ce code:
Function NbJoursAvantAnniversaire(DateNaissance As Date)
As Integer
Dim DateCetteAnnee As Date
DateCetteAnnee = DateSerial(Year(CeJour), Month
(DateNaissance), Day(DateNaissance))
If DateCetteAnnee < CeJour Then
DateCetteAnnee = DateAdd("yyyy", 1, DateCetteAnnee)
End If
NbJoursAvantAnniversaire = DateDiff("d", CeJour,
DateCetteAnnee)
End Function
Et comme controle pour voir l'affichage
=NbJoursAvantAnniversaire([DateCetteAnnee];Date())
Bonjour eric. Merci pour la fonction. voir: http://access.vba.free.fr/calculs.htm#nombre_de_jours_avant_prochain_anniversaire
-- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access.vba.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour débuter sur le forum
"Eric" a écrit dans le message de news:
Bonjour Alexandre,
La fonction que je t'ai fait passer n'a besoin que d'un seul argument : DateNaissance. Tu l'as modifiée et du coup elle ne marche plus. La valeur de CeJour n'est pas utile car c'est la date-sytème, valeur volatile par excellence et on la connait à tout instant. De plus dans ta fonction, l'argument CeJour n'étant pas passé, la fonction ne le connait pas.
Reprends tel quelle la fonction de mon post précédent.
Pour l'utiliser dans une requête tu mettras : BirthdayDans:NbJoursAvantAnniversaire([DateNaissance])
Pour l'utiliser dans un contrôle indépendant de formulaire basé sur la table contenant les dates de naissance, en source de ce contrôle tu mettras: =NbJoursAvantAnniversaire([DateNaissance])
Dans les 2 cas, tu passes à l'argument dteDate de la fonction NbJoursAvantAnniversaire la valeur de DateNaissance.
Remarque: Ton contrôle CeJour n'est pas utile pour déterminer le nb de jours. A toi de voir si tu veux faire apparaitre sur ton formulaire la date courante.
C'est ok ?
A+ Eric
PS: dans la fonction NbJoursAvantAnniversaire(dteDate As Date)
dteDate as Date : ici Date représente le type de l'argument dteDate que tu passes à la fonction, comme sur la ligne Dim DateCetteAnnee As Date
Dans l'instruction :If DateCetteAnnee < Date Then ... Date est la fonction VB qui retourne la Date-système
Merci beaucoup, Il y a cependant quelquechose qui ne fonctionne pas.
Voici mes champs : Date de naissance: [DateNaissance] Mon controle de date d'aujourdhui: Source:Date() , Nom:CeJour
J'ai mis ce code: Function NbJoursAvantAnniversaire(DateNaissance As Date) As Integer Dim DateCetteAnnee As Date DateCetteAnnee = DateSerial(Year(CeJour), Month (DateNaissance), Day(DateNaissance)) If DateCetteAnnee < CeJour Then DateCetteAnnee = DateAdd("yyyy", 1, DateCetteAnnee) End If NbJoursAvantAnniversaire = DateDiff("d", CeJour, DateCetteAnnee) End Function
Et comme controle pour voir l'affichage =NbJoursAvantAnniversaire([DateCetteAnnee];Date())
Merci, Alexandre
Eric
Bonjour Raymond,
J'ai été très surpris que l'auteur ne trouve pas son bonheur sur http://access.vba.free.fr/calculs.htm ;-)
"Raymond écrivait
Merci pour la fonction. voir: http://access.vba.free.fr/calculs.htm#nombre_de_jours_avant_prochain_an niversaire
Tout le plaisir est pour moi bien que je n'ai pas fait grand-chose. Une
simple adaptation de ton code, et encore c'est un bien grand mot.
Juste une petite remarque : pour harmoniser avec la fonction Anniversaire(dteDate As Date) As Date, tu devrais mettre dans la fonction NbJours... DateCetteAnnée au lieu de DateCetteAnnee (j'ai pour habitude de virer l'accentuation).
A+ Eric
Bonjour Raymond,
J'ai été très surpris que l'auteur ne trouve pas son bonheur sur
http://access.vba.free.fr/calculs.htm ;-)
"Raymond écrivait
Merci pour la fonction.
voir:
http://access.vba.free.fr/calculs.htm#nombre_de_jours_avant_prochain_an
niversaire
Tout le plaisir est pour moi bien que je n'ai pas fait grand-chose. Une
simple adaptation de ton code, et encore c'est un bien grand mot.
Juste une petite remarque : pour harmoniser avec la fonction
Anniversaire(dteDate As Date) As Date, tu devrais mettre dans la fonction
NbJours... DateCetteAnnée au lieu de DateCetteAnnee (j'ai pour habitude de
virer l'accentuation).
J'ai été très surpris que l'auteur ne trouve pas son bonheur sur http://access.vba.free.fr/calculs.htm ;-)
"Raymond écrivait
Merci pour la fonction. voir: http://access.vba.free.fr/calculs.htm#nombre_de_jours_avant_prochain_an niversaire
Tout le plaisir est pour moi bien que je n'ai pas fait grand-chose. Une
simple adaptation de ton code, et encore c'est un bien grand mot.
Juste une petite remarque : pour harmoniser avec la fonction Anniversaire(dteDate As Date) As Date, tu devrais mettre dans la fonction NbJours... DateCetteAnnée au lieu de DateCetteAnnee (j'ai pour habitude de virer l'accentuation).