[date]

Fermé
djlau74 Messages postés 10 Date d'inscription jeudi 24 décembre 2015 Statut Membre Dernière intervention 18 février 2016 - Modifié par djlau74 le 24/12/2015 à 15:56
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 - 30 déc. 2015 à 02:30
Bonjour,

ancien étudiant en info, j'ai de bonne bases de prog' , mais perdu mes repères quand même :(

j'ai différentes questions, mais la principale reste sur les bases numeriques d'une date (31 pour les jours, 12 pour les mois)

j'ai cette configuration:


=SI(K8<E8;
(DATEDIF(E8;F8;"Y"))+((DATEDIF(K8;L8;"Y"))) & " ans "
& (DATEDIF(E8;F8;"YM"))+((DATEDIF(K8;L8;"YM"))) & " mois "
& (DATEDIF(E8;F8;"MD"))+((DATEDIF(K8;L8;"MD"))) & "jours";DATEDIF(E8;F8;"Y")
& SI(DATEDIF(E8;F8;"Y")>1;
" ans, ";" an, ")&DATEDIF(E8;F8;"YM") &" mois et "&DATEDIF(E8;F8;"MD")&SI(DATEDIF(E8;F8;"MD")>1;" jours";" jour"))

NB: j'ai fait un mix d'un code trouvé qui gérait le pluriel/singulier que j'ai brut dans les colonnes G J M, et du perso qui fait les sommes.(N)

Le problème vient qu'en additionnant 2 nombres et bien on perds la notion de date, et que je me retrouve avec des "1 an 13 mois 48 jours" qui m'arrangerait de rester avec une bases numéraire de date: "2 ans 2 mois 18 jours"


Merci d'avance!


config: excel 2000 (le vieux sans ruban la :p )

EDIT: j'aurais plus tard une gestion des dates en soustraction aussi "la personne a X ans Y mois Z jours d'ancienneté MOINS X' ans Y' jours Z' ans d'indisponibilité)

4 réponses

Raymond PENTIER Messages postés 58652 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 septembre 2024 17 198
Modifié par Raymond PENTIER le 24/12/2015 à 15:51
Bonjour et bienvenue.

Je veux bien essayer de t'aider, mais à condition que tu envoies le fichier Excel, et non une simple copie d'écran ...
On ne voit pas même pas les titres de lignes et de colonnes !

C'est bien, la retraite ! Surtout aux Antilles ... :-) 
Raymond (INSA, AFPA, CF/R)
0
djlau74 Messages postés 10 Date d'inscription jeudi 24 décembre 2015 Statut Membre Dernière intervention 18 février 2016
24 déc. 2015 à 15:53
merci!
comment?
0
Raymond PENTIER Messages postés 58652 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 septembre 2024 17 198 > djlau74 Messages postés 10 Date d'inscription jeudi 24 décembre 2015 Statut Membre Dernière intervention 18 février 2016
Modifié par Raymond PENTIER le 24/12/2015 à 15:56
0
djlau74 Messages postés 10 Date d'inscription jeudi 24 décembre 2015 Statut Membre Dernière intervention 18 février 2016
24 déc. 2015 à 16:16
0
Raymond PENTIER Messages postés 58652 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 septembre 2024 17 198
24 déc. 2015 à 16:51
En O4 je mets la formule =(D4-C4+1) + (J4-I4+SI(J4>I4;1;0))
En P4 je mets la formule =C4+O4
En Q4 je mets la formule =DATEDIF(C4;P4;"Y")&SI(DATEDIF(C4;P4;"Y")>1;" ans, ";" an, ")&DATEDIF(C4;P4;"YM") &" mois et "&DATEDIF(C4;P4;"MD")&SI(DATEDIF(C4;P4;"MD")>1;" jours";" jour")
0
djlau74 Messages postés 10 Date d'inscription jeudi 24 décembre 2015 Statut Membre Dernière intervention 18 février 2016
Modifié par djlau74 le 24/12/2015 à 18:09
rebonjour serait-il possible d'avoir des éclaircissement sur votre code qui me semble fonctionnel:
O4: pourquoi +1? pourquoi cette fonction SI ? (puisque cela concerne des dates de début et de fin SI retournera toujours 1..
et tout simplement pourquoi ces calculs internediaires, je ne suis surement pas assez concentré mais je ne comprends pas

merci

edit: je pense que savoir l'intitulé de la colonne P4 devrait deja bien m'aider
edit 2: Mon SI de base (coller dans mon premier message) permettait de prendre en compte si la date de debut de SPV (C4) était antérieur a celle du service militaire (I4) alors l'ancienneté etait C4 (le service militaire n'est alors pas compté dans l'ancienneté puisqu'il est en meme temps que le SPV) suis je assez clair ?

le but de base est de calculer l'ancienneté d'une personne; l'addition des difdate SPV + SM se fait uniquement si elles ne se superpose pas dans le temps.
0
Raymond PENTIER Messages postés 58652 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 septembre 2024 17 198 > djlau74 Messages postés 10 Date d'inscription jeudi 24 décembre 2015 Statut Membre Dernière intervention 18 février 2016
25 déc. 2015 à 19:07
Q1 : En O4 je mets la formule =(D4-C4+1) + (J4-I4+SI(J4>I4;1;0))
En effet si C4 contient 2/12/2015 et D4 contient 5/12/2015, la fonction DATEDIF compte les 4 jours écoulés depuis le 2 jusqu'au 5, ces dates incluses.
Mais la différence arithmétique 5-2 donne seulement 3 ; il faut donc ajouter 1 jour pour englober la date de début. Et pour les colonnes J et I je n'ajoute 1 que si J4>I4, ce qui n'est pas le cas quand J4 et I4 sont vides, et que par conséquent égaux ...
0
Raymond PENTIER Messages postés 58652 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 septembre 2024 17 198 > Raymond PENTIER Messages postés 58652 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 septembre 2024
25 déc. 2015 à 19:19
Q2 : "pourquoi ces calculs internediaires" ?
Pour résoudre ton problème " je me retrouve avec
1 an 13 mois 48 jours
qui m'arrangerait de rester avec ...
2 ans 2 mois 18 jours 
"
, ce qui est légitime !
Il faut donc :
- en O calculer le cumul de jours des deux périodes,
- en P afficher une date fictive de fin (si les deux périodes étaient sans coupure)
- en Q utiliser ta formule avec DATEDIF
0
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
25 déc. 2015 à 20:08
Bonjour,

si il n'y a pas d'interruptions, DATEDIF() sur MIN(C4;F4;I4) et MAX(D4;G4;J4) ça ne le fait pas ?
eric
0
Raymond PENTIER Messages postés 58652 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 19 septembre 2024 17 198
26 déc. 2015 à 00:03
Bonjour eriiic.

Je ne suis intervenu que sur le problème de djlau74 "je me retrouve avec 1 an 13 mois 48 jours qui m'arrangerait de rester avec ... 2 ans 2 mois 18 jours", sans chercher à comprendre et à traiter son edit 2 :
Mon SI de base (coller dans mon premier message) permettait de prendre en compte si la date de debut de SPV (C4) était antérieur a celle du service militaire (I4) alors l'ancienneté etait C4 (le service militaire n'est alors pas compté dans l'ancienneté puisqu'il est en meme temps que le SPV) suis je assez clair ? 
le but de base est de calculer l'ancienneté d'une personne; l'addition des difdate SPV + SM se fait uniquement si elles ne se superpose pas dans le temps.
Modifié par djlau74 le 24/12/2015 à 18:09
Je ne sais donc pas trop si ta suggestion répond à sa nouvelle demande ...

Salutations à tous les deux.
0
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
26 déc. 2015 à 00:23
Salut raymond,
Fort possible, je n'ai pas vu cet ajout non plus. Et vu que son fichier ne donnait pas les bonnes réponses attendues en plus, je n'ai pas eu le courage de regarder le détail de ses calculs pour savoir si ma proposition collait ou pas.
eric
0
djlau74 Messages postés 10 Date d'inscription jeudi 24 décembre 2015 Statut Membre Dernière intervention 18 février 2016
29 déc. 2015 à 10:15
Bonjour a vous, je n'ai pas retouché le travail depuis le 26, merci de vos réponses, j'avance du coup, doucement je ne suis encore pas très au point non plus sur ce que je souhaite, alors forcément c'est déjà moins évidant :)

Merci de vos aides, ceci-dit je ne connaissait pas la fonction MIN() qui, n'est pas tres compliqué en effet, et peut s'averer pratique, mais je ne comprends pas (je suis désolé) l'idée d'eriiic du "datedif() sur min()"

si jamais tu repasses par la ;)

sinon je vais deja éclairer la ou je veux avancer, ca sera un bon début :)

merci encore!
0
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
29 déc. 2015 à 12:10
Bonjour,

Si il n'y aucune interruption la date de début est MIN(C4;F4;I4) et la date de fin est MAX(D4;G4;J4).
Tu fais donc datedif() sur ces 2 dates calculées par min() et max()
eric
0
djlau74 Messages postés 10 Date d'inscription jeudi 24 décembre 2015 Statut Membre Dernière intervention 18 février 2016
30 déc. 2015 à 01:11
Bonjour, encore merci de l'attention que vous portez a vos réponses, malheureusement, les interruptions sont possibles, quelqu'un a pu faire son service militaire 10 ans avant des dates début de SPV ou SPP, d'ou la "complexité" de la chose.
Le mieux serait une gestion de type calendrier avec gestion des differentes plages (les 3) avec superpositions et interruption possible, apres peut etre que je suis parti treeees loin et que il est possible de se simplifier la vie :)

merci!
0
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 235
30 déc. 2015 à 02:30
Ok, alors la réponse de raymond fait l'affaire.
0