[date]
djlau74
Messages postés
10
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
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é)
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
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)
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)
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")
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")
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.
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.
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 ...
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 ...
Q2 : "pourquoi ces calculs internediaires" ?
Pour résoudre ton problème " je me retrouve avec
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
Pour résoudre ton problème " je me retrouve avec
1 an 13 mois 48 joursqui 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
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
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
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 :
Salutations à tous les deux.
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 ?Je ne sais donc pas trop si ta suggestion répond à sa nouvelle demande ...
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
Salutations à tous les deux.
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!
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!
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!
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!
comment?