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

Opération sur champ date

18 réponses
Avatar
JMM21
Bonjour,

est-il possible de faire des opérations avec des champs dates ? (Word 2003)
Rajouter par exemple 21 mois à la date du jour
{ DATE\@ "dd/MM)yy" } 30/06/2009 pour obtenir 30/03/2011
Ou bien calculer le nombre de jour entre deux dates ?
Vous voyez ce que je veux dire...comme dans excel quoi.
Je n'y suis pas parvenu.
Si ce n'est pas possible, un petit bout de code vb ferait bien l'affaire...
Mais bon, c'est du luxe peut-être.

Bien cordialement


--
[Jmm21]
☺♂

10 réponses

1 2
Avatar
Geo
Bonjour JMM

est-il possible de faire des opérations avec des champs dates ? (Word 2003)



Faut en avoir envie, mais regardez le message de Jocelyne du 17/5.
Ca vous inspirera peut-être.


--
A+
Avatar
JMM21
Merci pour la piste
Pas forcément limpide...


--
[Jmm21]
☺♂


"Geo" a écrit :

Bonjour JMM

> est-il possible de faire des opérations avec des champs dates ? (Word 2003)

Faut en avoir envie, mais regardez le message de Jocelyne du 17/5.
Ca vous inspirera peut-être.


--
A+





Avatar
Geo
Bonjour

Merci pour la piste
Pas forcément limpide...



Disons que c'est obligatoirement un peu complexe et pas très lisible.
On peut quand même l'expliquer si vous le souhaitez.

--
A+
Avatar
JMM21
Géo a tendu une perche
On peut quand même l'expliquer si vous le souhaitez



Oh que oui !!!
Si je reprends le post deJocelyne :
{ QUOTE } ???
je n'ai pas trouvé ce code de champ dans l'aide, il fait quoi ?

{ SET bm { BirthDate @ M } }
SET, je vois à peu près…
je crée un signet que j'appelle comme je veux (bm = mois de late de
naissance) et qui isole un élément de la date. C'est bien cela ?

=IF((mm=2);28+(mm=2)*((MOD(yy;4)=0)+(MOD(yy;400)=0)-(MOD(yy;100)=0));31-((mm=4)+(mm=6)+(mm=9)+(mm))) etc….

Là par contre, c'est la brasse coulée, je plane…
les opérations sont pour le moins complexes !!!
je présume que cela permet de régler, entre autre, le cas du mois de février
???

Très égoïstement, en ce qui concerne mon problème, c'est peu être plus simple.
Le souci, c'est d'écrire la formule qui permettra d'ajouter 21 mois à une
date donnée.
Par exemble :
31/07/2008 devra donner 04/2010 (je peux me passer du jour)
J'isole le mois de la date (facile) et je rajoute 21 mois, oui, mais comment ?
Faut-il combiner autant de IF que de mois avec un truc du genre :
{ IF { { mm = "01" "02" } IF { mm = "02" "11" }} IF…}}
Et puis pour l'année ?
suivant le mois il faudra ajouter 1 ou 2 à l'année.
Ma réflexion est peut-être "emberlificotée"…

A vos lumières

Grand merci

--
[Jmm21]
☺♂


"Geo" a écrit :

Bonjour

> Merci pour la piste
> Pas forcément limpide...

Disons que c'est obligatoirement un peu complexe et pas très lisible.
On peut quand même l'expliquer si vous le souhaitez.

--
A+





Avatar
Geo
Bonjour

Géo a tendu une perche



Ça ne veut pas dire que vous êtes sur la rive ...

{ QUOTE } ???
je n'ai pas trouvé ce code de champ dans l'aide, il fait quoi ?


L'aide de 2007 est très incomplète en ce qui concerne les champs.
Cela a été signalé à plusieurs reprises à MS.
Perso, j'ai mis l'aide de 2003 sur mon bureau pour ces cas-là
En gros c'est l'équivalent de = en Excel, c'est à dire : indiquer à cet
endroit, dans le document le résultat du calcul qui suit.
Voici ce que dit l'aide 2003 :
"{ QUOTE "TexteLittéral " }
Insère le texte spécifié dans un document.
"TexteLittéral" Texte entre guillemets, inséré dans le document. Il
peut inclure d'autres champs à l'exception de AUTONUM, AUTONUMLGL,
AUTONUMOUT et SYMBOL.

Exemples
Le champ QUOTE suivant, qui contient des champs IF, = (Formule) et DATE
imbriqués, génère le nom du mois précédent. Si « février » est le mois
en cours, le champ affiche la valeur « janvier », par exemple. Ce champ
est utile pour les rapports rédigés a posteriori, comme les rapports de
vente.

{ QUOTE { IF { DATE @ "M" } = 1 "12" " {= { DATE @ "M" } -1 } "
}/1/03 @ "MMMM" }

{ SET bm { BirthDate @ M } }
SET, je vois à peu près…
je crée un signet que j'appelle comme je veux (bm = mois de late de
naissance) et qui isole un élément de la date. C'est bien cela ?



Oui, voir l'exemple ci-dessus.

=IF((mm=2);28+(mm=2)*((MOD(yy;4)=0)+(MOD(yy;400)=0)-(MOD(yy;100)=0));
31-((mm=4)+(mm=6)+(mm=9)+(mm)))
etc….

Là par contre, c'est la brasse coulée, je plane…
les opérations sont pour le moins complexes !!!
je présume que cela permet de régler, entre autre, le cas du mois de février



Oui, avec les années bissextiles, tous les 4 ans sauf les siècles.
Mais aussi les mois de 30 jours, il y a une astuce :
((mm = 4) renvoie 1 si égal, 0 dans les autres cas.
Donc (mm=4)+(mm=6)+(mm=9)+(mm) vaut 1 pour le mois d'avril ou juin
ou septembre ou novembre.
sinon 0.

Très égoïstement, en ce qui concerne mon problème, c'est peut être plus simple.



Oh ! à voir

Le souci, c'est d'écrire la formule qui permettra d'ajouter 21 mois à une
date donnée.
Par exemple :
31/07/2008 devra donner 04/2010 (je peux me passer du jour)
J'isole le mois de la date (facile) et je rajoute 21 mois, oui, mais comment ?
Faut-il combiner autant de IF que de mois avec un truc du genre :
{ IF { { mm = "01" "02" } IF { mm = "02" "11" }} IF…}}
Et puis pour l'année ?
suivant le mois il faudra ajouter 1 ou 2 à l'année.



L'astuce utilisée ci-dessus peut être utilisée pour votre cas.
Il faut surtout bien décrire le calcul avant de le programmer.


--
A+
Avatar
JMM21
Aïe, aïe, aïe !!!

Il faut surtout bien décrire le calcul avant de le programmer.


Géo, à juste titre d'ailleurs, incite à faire de la plomberie plutôt que de
donner à boire...

Donc si j'ai bien compris la solution avec les "IF" imbriqués n'est la
bonne, (de plus, il y a peut-être un nombre maximum de IF, 8 par exemple,
comme dans Excel ?)
Par contre, je ne vois pas bien comment et pourquoi utiliser l'astuce
décrite :
>((mm = 4) renvoie 1 si égal, 0 dans les autres cas.
je n'ai pas besoin du jour.
Cela prouve que je n'ai pas saisi grand chose.

Serait-ce le champ du signe ???

En tout état de cause, merci pour le temps que vous m'avez consacré.

Bien cordialement

JMM21
Avatar
Geo
Bonjour

Serait-ce le champ du signe ???



Rien que pour ce bon mot on a envie de vous aider,
par contre l'indicateur de température de disques et la sueur sur mon
front m'incitent à faire une pause.
A plus tard ...

--
A+
Avatar
Geo
Bonsoir

Sans le jour c'est relativement facile :
http://cjoint.com/?hbvrHX5Wao

--
A+
Avatar
JMM21
Geo a trouvé, bien entendu
Sans le jour c'est relativement facile :



Bonsoir,

Je dois me l'approprier (demain, il est déjà bien tard...) à défaut d'en
revendiquer la paternité

De l'humilité et surtout un grand merci

Très bonne nuit

--
[Jmm21]
☺♂


"Geo" a écrit :

Bonsoir




http://cjoint.com/?hbvrHX5Wao

--
A+





Avatar
JMM21
Bonjour,

toujours aussi chauds ces disques ???

un petit souci pour le mois de mars que je n'arrive pas à tester et par
conséquent à résoudre :
en effet mod(24;12) donne 0 et non pas 12...

D'autre par, si vous le permettez,encore une petite question pour ma culture
(qui en a besoin...) :
si par hasard le nombre de jour du mois n'est pas correct, par exemple
DateBase = 31/04/2009, la formule perd les pédale et donne"-5/ -1980" ???
curieux, non ?, puisqu'on se moque des jours.
Y aurait-il une notion du calendrier dans un coin ?

Merci
--
[Jmm21]
☺♂
1 2