Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Formules avec les date anniversaires d'outlook

13 réponses
Avatar
Emile
Bonjour à tous,

Je cherche a ajouter deux colonnes suppl. a mon agenda qui me calculent par
rapport a la date de naissance saisie, l'âge exacte de type: Ans, mois,
jours (ex:1)
Et d'autre part, je souhaiterais l'autre champ qui me calcule le temps qu'il
reste depuis (now) jusqu'au prochain anniversaire du contact, de type: Reste
XX jours
Ex 1:
DateDiff("y",[Anniversaire],Date()) & " ans, " &
DateDiff("ym",[Anniversaire],Date()) & " mois, " &
DateDiff("md",[Anniversaire],Date()) & " jours"

Ex 2:
Format(Now(),"dd/mm")-Format([Anniversaire],"jj/mm")

J'ai déjà vu ce genre de formules dans ce forum, mais je ne les retrouve
plus, et mes tests ci dessus, sont franchement lamentables ;-)
Quelqu'un aurait la solution a mes formules?

Merci d'avance,
Cordialement,

10 réponses

1 2
Avatar
Geo

Je cherche a ajouter deux colonnes suppl. a mon agenda qui me calculent par rapport a
la date de naissance saisie,


Votre description manque de précision.
La notion d'agenda n'existe pas (plus) dans le version 2007.
S'il s'agit de la liste des tâches, je ne vois ais comment ajouter une
nouvelle donnée et vous allez la rattacher à quoi ?
S'il s'agit des contacts, le contenu de données que vous allez ajouter
est statique, il faut donc le mettre à jour par une macro qui va faire
les calculs à chaque démarrage de Outlook.

--
A+

Avatar
Emile
Bonjour Geo,

Effectivement quand on est dedans,
on à tendance à oublier certaines précisions... :-)

Je suis sur Windows XP Pro, avec Office 2003 PRO, et suis dans les contacts,
visualisés sous la forme de liste telephonique. Je suis particulièrement
intéressé par le champ: Aniversaires
Depuis cet affichage en clic contextuel[droit] , je vais sur Affichage
personnalisés, pour ajouter 2 nouvelles colonnes : Age | Prochain
anniversaire
Format des colonnes: Formule
Qui me donne l'accès au fameux éditeur, pour composer la formule qui
calculera les champs.
Merci de votre aide,

Cordialement,




"Geo" a écrit dans le message de news:


Je cherche a ajouter deux colonnes suppl. a mon agenda qui me calculent
par rapport a la date de naissance saisie,


Votre description manque de précision.
La notion d'agenda n'existe pas (plus) dans le version 2007.
S'il s'agit de la liste des tâches, je ne vois ais comment ajouter une
nouvelle donnée et vous allez la rattacher à quoi ?
S'il s'agit des contacts, le contenu de données que vous allez ajouter est
statique, il faut donc le mettre à jour par une macro qui va faire les
calculs à chaque démarrage de Outlook.

--
A+





Avatar
Geo

Bonjour Geo,

Effectivement quand on est dedans,
on à tendance à oublier certaines précisions... :-)

Je suis sur Windows XP Pro, avec Office 2003 PRO, et suis dans les contacts, visualisés
sous la forme de liste telephonique. Je suis particulièrement intéressé par le champ:
Aniversaires
Depuis cet affichage en clic contextuel[droit] , je vais sur Affichage personnalisés,
pour ajouter 2 nouvelles colonnes : Age | Prochain anniversaire
Format des colonnes: Formule


D'accord.
Comme on n'a droit qu'à une seule ligne c'est un peu compliqué
Supposons que vous ayez une champ "Date de naissance"
Colonne Age :
IIf(CDate(DatePart("d", [Date de naissance]) & "/" & DatePart("m",
[Date de naissance]) & "/" & DatePart("yyyy", Date)) <= Date,
DateDiff("yyyy", [Date de naissance], Date), DateDiff("yyyy", [Date de
naissance], Date) - 1)
Colone temps restant :
DateDiff("d", Date, DateAdd("yyyy", [Age] + 1, [Date de naissance])

--
A+

Avatar
Emile
Bonsoir Geo,
Merci pour votre aide. Au premier coup, aucune des deux formules ne
fonctionnait.
J'ai ajouté des parenthèses a "Date()" et la première fonctionne.
------------------------------------------------------------------------------
IIf(CDate(DatePart("d",[Anniversaire]) & "/" & DatePart("m",[Anniversaire])
& "/" &
DatePart("yyyy",Date()))<Úte(),DateDiff("yyyy",[Anniversaire],Date()),DateDiff("yyyy",[Anniversaire],Date())-1)
&" Ans"
------------------------------------------------------------------------------
Mais j'obtiens (par exemple): 20 Ans
Alors que je cherche a obtenir: 20 Ans 6 Mois 4 Jours
__________________________________________________________

Quant a la seconde, même après correction de la fonction date () et le
champ: [Anniversaire] je n'arrive pas à la faire fonctionner...
------------------------------------------------------------------------------
DateDiff("d",Date(),DateAdd("yyyy",[Age complet]+1,[Anniversaire]))
------------------------------------------------------------------------------

Avez-vous une correction / suggestion à me proposer ? ;-)
J'ai un peu de peine avec ces formules ou on ne peut pas bien visualiser les
résultats avec un assistant, comme sur Excel, par exemple.. ;-))

Cordialement,


"Geo" a écrit dans le message de news:


Bonjour Geo,

Effectivement quand on est dedans,
on à tendance à oublier certaines précisions... :-)

Je suis sur Windows XP Pro, avec Office 2003 PRO, et suis dans les
contacts, visualisés sous la forme de liste telephonique. Je suis
particulièrement intéressé par le champ: Aniversaires
Depuis cet affichage en clic contextuel[droit] , je vais sur Affichage
personnalisés, pour ajouter 2 nouvelles colonnes : Age | Prochain
anniversaire
Format des colonnes: Formule


D'accord.
Comme on n'a droit qu'à une seule ligne c'est un peu compliqué
Supposons que vous ayez une champ "Date de naissance"
Colonne Age :
IIf(CDate(DatePart("d", [Date de naissance]) & "/" & DatePart("m", [Date
de naissance]) & "/" & DatePart("yyyy", Date)) <= Date, DateDiff("yyyy",
[Date de naissance], Date), DateDiff("yyyy", [Date de naissance], Date) -
1)

Colone temps restant :
DateDiff("d", Date, DateAdd("yyyy", [Age] + 1, [Date de naissance])

--
A+





Avatar
Geo

Bonsoir Geo,
Merci pour votre aide. Au premier coup, aucune des deux formules ne fonctionnait.
J'ai ajouté des parenthèses a "Date()" et la première fonctionne.
------------------------------------------------------------------------------
IIf(CDate(DatePart("d",[Anniversaire]) & "/" & DatePart("m",[Anniversaire]) & "/" &
DatePart("yyyy",Date()))<Úte(),DateDiff("yyyy",[Anniversaire],Date()),DateDiff("yyyy",[Anniversaire],Date())-1)
&" Ans"
------------------------------------------------------------------------------
Mais j'obtiens (par exemple): 20 Ans
Alors que je cherche a obtenir: 20 Ans 6 Mois 4 Jours


Effectivement dans ce cas, c'est incomplet.

__________________________________________________________

Quant a la seconde, même après correction de la fonction date () et le champ:
[Anniversaire] je n'arrive pas à la faire fonctionner...
------------------------------------------------------------------------------
DateDiff("d",Date(),DateAdd("yyyy",[Age complet]+1,[Anniversaire]))
------------------------------------------------------------------------------



Cette formule n'est plus valable dans ce cas.

Avez-vous une correction / suggestion à me proposer ? ;-)
J'ai un peu de peine avec ces formules ou on ne peut pas bien visualiser les résultats
avec un assistant, comme sur Excel, par exemple.. ;-))


En fait je les ai rédigées en vba, ce qui explique l'absence des
parenthèses, en détaillant, par exemple :
j = DatePart("d", DateNaissance)
m = DatePart("m", DateNaissance)
a = DatePart("yyyy", DateNaissance)
ac = DatePart("yyyy", Date)
dateani = CDate(j & "/" & m & "/" & ac)

Une fois au point, on remplace progressivement les calculs
intermédiaires dans la formule finale, dans l'exemple ça devient :
dateani = CDate(DatePart("d", DateNaissance) & "/" & DatePart("m",
DateNaissance) & "/" & DatePart("yyyy", DateNaissance)).

Vous pourriez aussi faire des colonnes de calcul intermédiaire qui
serviraient de variables intermédiaires.

Là, je ne vais pas avoir tout de site le temps de reprendre, vous
pourriez chercher dans cette direction.


--
A+

Avatar
Emile
Bonsoir Geo,

OK, Merci pour le coup de main et le conseil.
Malheureusememt (pour moi) je suis pas franchement meilleur en VBA.. :-(


"Geo" a écrit dans le message de news:

Bonsoir Geo,
Merci pour votre aide. Au premier coup, aucune des deux formules ne
fonctionnait.
J'ai ajouté des parenthèses a "Date()" et la première fonctionne.
------------------------------------------------------------------------------
IIf(CDate(DatePart("d",[Anniversaire]) & "/" &
DatePart("m",[Anniversaire]) & "/" &
DatePart("yyyy",Date()))<Úte(),DateDiff("yyyy",[Anniversaire],Date()),DateDiff("yyyy",[Anniversaire],Date())-1)
&" Ans"
------------------------------------------------------------------------------
Mais j'obtiens (par exemple): 20 Ans
Alors que je cherche a obtenir: 20 Ans 6 Mois 4 Jours


Effectivement dans ce cas, c'est incomplet.

__________________________________________________________

Quant a la seconde, même après correction de la fonction date () et le
champ: [Anniversaire] je n'arrive pas à la faire fonctionner...
------------------------------------------------------------------------------
DateDiff("d",Date(),DateAdd("yyyy",[Age complet]+1,[Anniversaire]))
------------------------------------------------------------------------------



Cette formule n'est plus valable dans ce cas.

Avez-vous une correction / suggestion à me proposer ? ;-)
J'ai un peu de peine avec ces formules ou on ne peut pas bien visualiser
les résultats avec un assistant, comme sur Excel, par exemple.. ;-))


En fait je les ai rédigées en vba, ce qui explique l'absence des
parenthèses, en détaillant, par exemple :
j = DatePart("d", DateNaissance)
m = DatePart("m", DateNaissance)
a = DatePart("yyyy", DateNaissance)
ac = DatePart("yyyy", Date)
dateani = CDate(j & "/" & m & "/" & ac)

Une fois au point, on remplace progressivement les calculs intermédiaires
dans la formule finale, dans l'exemple ça devient :
dateani = CDate(DatePart("d", DateNaissance) & "/" & DatePart("m",
DateNaissance) & "/" & DatePart("yyyy", DateNaissance)).

Vous pourriez aussi faire des colonnes de calcul intermédiaire qui
serviraient de variables intermédiaires.

Là, je ne vais pas avoir tout de site le temps de reprendre, vous pourriez
chercher dans cette direction.


--
A+





Avatar
Geo
Bonjour
Pour la délai en jours avant le prochain anniversaire :
DateDiff("d",Date(),IIf(CDate(DatePart("d",[Date Naissance]) & "/" &
DatePart("m",[Date Naissance]) & "/" &
DatePart("yyyy",Date()))<Úte(),DateAdd("yyyy",1,CDate(DatePart("d",[Date
Naissance]) & "/" & DatePart("m",[Date Naissance]) & "/" &
DatePart("yyyy",Date()))),DateDiff("yyyy",[Date Naissance],Date())-1))

Testé.
L'autre formule est encore plus complexe, mais on va y arriver.

--
A+
Avatar
Emile
Merci pour ton aide Géo, :-)

J'avais un peu laissé tombé, voilà la principale raison du retard a ma
consultation / réponse..

La formule fonctionne, mais seulement avec des chiffres positifs (c-à-d
quand l'anniversaire n'est pas encore échu) après c'est un chiffre négatif
de 5 décimales qui résulte...
Heuu... Il manque la partie "en cas de date dépassée"..
Personnellement, c'est devenu un peu compliqué pour que je la corrige
moi-même..
Est-ce Possible de la finir? ;-))
Merci d'avance,

Emile



"Geo" a écrit dans le message de news:

Bonjour
Pour la délai en jours avant le prochain anniversaire :

DateDiff("d",Date(),IIf(CDate(DatePart("d",[Date Naissance]) & "/" &
DatePart("m",[Date Naissance]) & "/" &
DatePart("yyyy",Date()))<Úte(),DateAdd("yyyy",1,CDate(DatePart("d",[Date
Naissance]) & "/" & DatePart("m",[Date Naissance]) & "/" &
DatePart("yyyy",Date()))),DateDiff("yyyy",[Date Naissance],Date())-1))

Testé.
L'autre formule est encore plus complexe, mais on va y arriver.

--
A+




Avatar
Geo

Merci pour ton aide Géo, :-)

J'avais un peu laissé tombé, voilà la principale raison du retard a ma consultation /
réponse..

La formule fonctionne, mais seulement avec des chiffres positifs (c-à-d quand
l'anniversaire n'est pas encore échu) après c'est un chiffre négatif de 5 décimales qui
résulte...
Heuu... Il manque la partie "en cas de date dépassée"..
Personnellement, c'est devenu un peu compliqué pour que je la corrige moi-même..
Est-ce Possible de la finir? ;-))
Merci d'avance,


C'est vrai que c'est déjà loin.
La question de la date dépassée ne devrait pas se poser car il y a
toujours un anniversaire à venir.
Vous avez un exemple précis ?

--
A+

Avatar
Emile
Bonjour Géo,

La question de la date dépassée ne devrait pas se poser car il y a
toujours un anniversaire à venir.
Vous avez un exemple précis ?

--
A+


Oui, j'ai une date de départ du 30/11/1958 c-à-d 49 ans 6 mois et la
colonne qui accueil la formule affiche: 39'545
Alors qu'elle devrait afficher quelque chose autour des 186 jours restant

Apparemment la formule calcul depuis la naissance au lieu de l'année en
cours..

Une idée ?

Merci pour ton aide,
Emile

1 2