Pb formule ancienneté | ||
---|---|---|
Inscription: 27/06/2010
Messages:
44
Système d'exploitation: PC Version Excel utilisée: Excel 2007 |
Posté le : 20-09-2011 13h01
Bonjour à tous,
Je vous expose mon problème : Dans un tableau j'ai une date de début de contrat (colonne S) et une date de fin de contrat (colonne T). En colonne Z j'ai entré la formule suivante pour qu'il me calcule l'ancienneté : =SI(T2="";DATEDIF(S2;AUJOURDHUI();"y")& SI(DATEDIF(S2;AUJOURDHUI();"y")>1;" ans, ";" an, ") & DATEDIF(S2;AUJOURDHUI();"ym") & " mois, " & DATEDIF(S2;AUJOURDHUI();"md") & SI(DATEDIF(S2;AUJOURDHUI();"md")>1;" jours";" jour");DATEDIF(S2;T2;"y")& SI(DATEDIF(S2;T2;"y")>1;" ans, ";" an, ") & DATEDIF(S2;T2;"ym") & " mois, "& DATEDIF(S2;T2;"md") & SI(DATEDIF(S2;T2;"md")>1;" jours";" jour")) Le problème est que si je saisi en T la date de fin de contrat et que celle-ci est postérieure à la date du jour, il me renvoie l'ancienneté en fin de contrat et non au jour d'aujourd'hui. Sachant que la colonne T peut être vide (cas des CDI sans date de fin) ou comporter une date antérieure à aujourd'hui (cas des personnes ne faisant plus partie du personnel) ou comporter une date postérieure (cas des personnes en CDD non encore terminé). Avec ma formule, j'ai bien l'ancienneté au jour d'aujourd'hui pour les CDI (case vide), l'ancienneté à la date de fin de contrat pour les CDD terminés, mais pas pour les CDD en cours. Merci d'avance pour vos lumières. |
|
|
Re: Pb formule ancienneté | ||
---|---|---|
Inscription: 09/05/2007
De Courcelles-les-Montbéliard
Messages:
286
Système d'exploitation: PC & Mac Version Excel utilisée: Mac 2004 - 2011, et PC 2003 - 2010 |
Posté le : 20-09-2011 18h28
Bonsoir Fred
Je ne sais pas si j'ai bien compris ta problèmatique. Essaye la formule si dessous =SI(S2="";"";DATEDIF(S2;MIN(T2;AUJOURDHUI());"y")& SI(DATEDIF(S2;MIN(T2;AUJOURDHUI());"y")>1;" ans, ";" an, ") & DATEDIF(S2;MIN(T2;AUJOURDHUI());"ym") & " mois, "& DATEDIF(S2;MIN(T2;AUJOURDHUI());"md") &SI(DATEDIF(S2;MIN(T2;AUJOURDHUI());"md")>1;" jours";" jour")) @+Jean-Marie |
|
|
Re: Pb formule ancienneté | ||
---|---|---|
Inscription: 27/06/2010
Messages:
44
Système d'exploitation: PC Version Excel utilisée: Excel 2007 |
Posté le : 21-09-2011 16h11
Bonjour Jean-Marie,
Ta formule fonctionne nickel ! Merci bcp |
|
|
Re: Pb formule ancienneté | ||
---|---|---|
Inscription: 27/06/2010
Messages:
44
Système d'exploitation: PC Version Excel utilisée: Excel 2007 |
Posté le : 05-10-2011 11h58
Bonjour Jean-Marie, |
|
|
Re: Pb formule ancienneté | ||
---|---|---|
Inscription: 09/05/2007
De Courcelles-les-Montbéliard
Messages:
286
Système d'exploitation: PC & Mac Version Excel utilisée: Mac 2004 - 2011, et PC 2003 - 2010 |
Posté le : 05-10-2011 12h18
Bonjour Fred777,
Tu parles d'un formulaire, ne le voyant pas, il m'est difficile de te répondre dans l'immédiat. @+Jean-Marie |
|
|
Re: Pb formule ancienneté | ||
---|---|---|
Inscription: 27/06/2010
Messages:
44
Système d'exploitation: PC Version Excel utilisée: Excel 2007 |
Posté le : 05-10-2011 12h53
En fait j'ai un userform qui me sert à alimenter ma base de données avec la saisie de date de fin de CDD. La date se reporte bien dans la colonne, mais dans ce cas la formule ne fonctionne pas. Alors que si je modifie la date dans la colonne directement dans la feuille excel, là je n'ai aucun problème. Private Sub TextBoxfincdd_Change() Je précise que dans ma feuille excel, la colonne est bien au format date. Merci d'avance. |
|
|
Re: Pb formule ancienneté | ||
---|---|---|
Inscription: 09/05/2007
De Courcelles-les-Montbéliard
Messages:
286
Système d'exploitation: PC & Mac Version Excel utilisée: Mac 2004 - 2011, et PC 2003 - 2010 |
Posté le : 05-10-2011 18h58
Bonsoir
Citation : Je précise que dans ma feuille excel, la colonne est bien au format date. Cela ne interdit pas la possibilité d'avoir une donnée texte dans une cellule de cette colonne ! Pour vérifier si la cellule contient une valeur numérique ou un texte, utilise la fonction TYPE(...), remplace ... par la référence de ta cellule hote. Si la valeur retournée est égale à 1, la valeur est numérique, si la valeur est 2 la valeur est écrite en texte. Si tu as la valeur 1, indique moi plus en détails les valeurs que tu as dans les cellules. Si tu as la valeur 2, je te conseille de poster le code qui permet de fixer la valeur de ton textbox dans la cellule, et non le code du contrôle de saisie des caractères dans le textbox). Bonne soirée. @+Jean-Marie |
|
|
Re: Pb formule ancienneté | ||
---|---|---|
Inscription: 27/06/2010
Messages:
44
Système d'exploitation: PC Version Excel utilisée: Excel 2007 |
Posté le : 06-10-2011 10h16
Bonjour Jean-Marie,
Effectivement, en utilisant la fonction TYPE(...) la valeur renvoyée est 1 lorsque je saisie la date directement dans la feuille excel la valeur renvoyée est 2 lorsque je saisie la date dans mon formulaire (userform) Le code qui me permet de fixer la valeur de mon textbox dans la cellule : Range("T" & Num).Value = TextBoxfincdd Merci encore |
|
|
Re: Pb formule ancienneté | ||
---|---|---|
Inscription: 09/05/2007
De Courcelles-les-Montbéliard
Messages:
286
Système d'exploitation: PC & Mac Version Excel utilisée: Mac 2004 - 2011, et PC 2003 - 2010 |
Posté le : 06-10-2011 12h41
Bonjour Fred777, Didier, le Forum
Pour répondre à ta ligne de commande, regarde avec celle-ci Range("T" & Num).Value = CDate(TextBoxfincdd) |
|
|
Re: Pb formule ancienneté | ||
---|---|---|
Inscription: 27/06/2010
Messages:
44
Système d'exploitation: PC Version Excel utilisée: Excel 2007 |
Posté le : 06-10-2011 13h07
Jean-Marie,
C'est parfait, c'est tout ce qu'il me fallait. Merci. Bonne fin de journée. |
|
|