XL 2021 Calcul de l'année en fonction du mois d’entrée et non pas à partir de janvier

JoBar57

XLDnaute Junior
Bonjour,

Dans la colonne « Années » du tableau1 qui se trouve dans l’onglet « Entrées », j’aimerais obtenir un résultat en fonction du nom inscrit dans la colonne « Personnel » de Tableau1 et de la date d’entrée qui se trouve dans Tableau5, colonne « Date d’entrée » (2e colonne du tableau)

Exemple si la personne est entrée en 05/2015 et que les dates de début et fin dans le Tableau1 vont du 15/03/2020 au 31/03/2020, le résultat devra être 2019 et non pas 2020 car l’année 2020 pour cette personne ne débutera qu’à compter du 1/05/2020.

Et donc si les dates vont par exemple du 15/05/2020 au 25/05/2020 alors le résultat dans la colonne « Années » sera bien 2020.

Le résultat actuel marche seulement si on parle d'année civile (du 1er janvier au 31 décembre).

D’avance merci de prendre le temps.
 

Pièces jointes

  • 20230811 - V - F - RF - test1.xlsm
    220.4 KB · Affichages: 15
Solution
Bonjour,

Si vous voulez utiliser "28/2" au lieu de "29/2" en colonne O entrez en I3 :
Code:
=ANNEE([@[Date de Fin]])-([@[Date de Fin]]<DATE(ANNEE([@[Date de Fin]]);MOIS(RECHERCHEV([@Personnel];Tableau5;2;0));JOUR(SUBSTITUE(TEXTE(RECHERCHEV([@Personnel];Tableau5;2;0);"j/m/aaaa");"29/2";"28/2"))))
Mais je n'en vois pas vraiment l'intérêt.

A+

chris

XLDnaute Barbatruc
Bonjour
Tu as renommé tes onglets pourquoi ne pas le faire pour les tableaux ? C'est illisible de garder les noms automatiques...
VB:
=ANNEE(RECHERCHEV([@Personnel];Tableau5[[Personnel]:[Date entrée ]];2;0))

Mais pourquoi ne prendre directement l'année d'entrée ?
Code:
=RECHERCHEV([@Personnel];Tableau5[[Personnel]:[Année d''entrée]];3;0)
 

JoBar57

XLDnaute Junior
Bonsoir,

Quel est le rapport avec 5/2015 sinon un délai probable de 5 ans dont tu ne parles pas
Aucun rapport c'était juste un exemple, le délai n'entre pas en ligne de compte.

Alors je reprend mon exemple de façon plus concrète avec "A"

A => entré le 5/3/2007 => période (sur la ligne B3) = 1/2/2018 au 17/2/2018 => Résultat dans la colonne "Années" = 2018, mais devrait être 2017 car l'année 2018 démarrera seulement en mars 2018


Mais pourquoi ne prendre directement l'année d'entrée ?
Je dois tenir compte du mois d'entré, puisque c'est ce qui va conditionner le début de l'année pour la personne concernée.

Tu as renommé tes onglets pourquoi ne pas le faire pour les tableaux ? C'est illisible de garder les noms automatiques...
Ce classeur s'est étoffé en plusieurs étapes (sur plusieurs années) avec des infos collectées un peu partout. Mon niveau en VBA n'est pas suffisant pour avoir une vue synthétique sur l'ensemble et je n'ai donc pas remanié le tout.
Mais je note la suggestion pour la prochaine fois.

Cordialement,
 
Dernière édition:

JoBar57

XLDnaute Junior
Bonjour bsalv,

Merci beaucoup,

Comment se fait-il qu'il y ai un message d'erreur sur certaines lignes (1159 à 1175 et 1204 à 1287), alors qu'en principe rien ne les différencie des lignes précédentes ou suivantes ?
Et aussi pourrais-tu m'expliquer à quoi sert la feuille "Blad1" ?

Cordialement,
 

bsalv

XLDnaute Occasionnel
pour la cellule A1159, on pouvait modifier la formule en
Enrichi (BBcode):
=ANNEE(RECHERCHEV(Tableau1[@Personnel];Tableau5[[#Tout];[Personnel]:[Date entrée ]];2;0))
+SIERREUR(DATEDIF(RECHERCHEV(Tableau1[@Personnel];Tableau5[[#Tout];[Personnel]:[Date entrée ]];2;0);D1159;"y");
-1-DATEDIF(D1159;RECHERCHEV(Tableau1[@Personnel];Tableau5[[#Tout];[Personnel]:[Date entrée ]];2;0);"y"))
 

job75

XLDnaute Barbatruc
Bonjour JoBars57, le forum,

Formule en G3 de la feuille "Entrées" :
Code:
=ANNEE([@[Date de Fin]])-([@[Date de Fin]]<DATE(ANNEE([@[Date de Fin]]);MOIS(RECHERCHEV([@Personnel];Tableau5;2;0));JOUR(RECHERCHEV([@Personnel];Tableau5;2;0))))
A+
 

Pièces jointes

  • 20230811 - V - F - RF - test1.xlsm
    225.4 KB · Affichages: 5

JoBar57

XLDnaute Junior
Bonjour bsalv,

Merci pour votre réponse,
Effectivement les erreurs viennent de l'incohérence avec la date d'entrée postérieure à l'évènement (dû à l'anonymisation rapide du classeur)
par contre je souhaitais inclure ce calcul dans le tableau1 aussi j'ai fait un copier/coller de la colonne A en colonne I et là ça ne fonctionne plus !?
Je ne comprend pas la raison, puisque la formule recopiée me semble correcte.

Voir le fichier joint
 

Pièces jointes

  • 20230811 - V - F - RF - test1 bsalv.xlsm
    254.7 KB · Affichages: 2

JoBar57

XLDnaute Junior
Bonjour job75,

Merci pour votre contribution, mais j'ai le même problème qu'avec la recopie de la colonne A de bsalv, ça me retourne une erreur lorsque je recopie votre formule dans la colonne Années

Voir fichier joint

Notez que si Date entrée est un 29 février c'est le 1er mars qui sera considéré lors des années non bissextiles.
Est-il possible de conserver plutôt le mois de février ?
 

Pièces jointes

  • 20230811 - V - F - RF - test1 job75.xlsm
    258.9 KB · Affichages: 5

bsalv

XLDnaute Occasionnel
bonjour, avec la formule courte de job75.
Le problème de 29 février n'est que pour les dates d'entrées
Enrichi (BBcode):
=ANNEE([@[Date de Fin]])-([@[Date de Fin]]<DATE(ANNEE([@[Date de Fin]]);MOIS(RECHERCHEV([@Personnel];Tableau5;2;0));JOUR(RECHERCHEV([@Personnel];Tableau5;2;0))))
deviendra
Enrichi (BBcode):
=ANNEE([@[Date de Fin]])-([@[Date de Fin]]<MIN(
DATE(ANNEE([@[Date de Fin]]);MOIS(RECHERCHEV([@Personnel];Tableau5;2;0))+1;0);
DATE(ANNEE([@[Date de Fin]]);MOIS(RECHERCHEV([@Personnel];Tableau5;2;0));JOUR(RECHERCHEV([@Personnel];Tableau5;2;0)))))
je ne sais pas si cela vaut la peine ?
 

Pièces jointes

  • 20230811 - V - F - RF - test1 bsalv.xlsm
    239.3 KB · Affichages: 5

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 326
Membres
103 179
dernier inscrit
BERSEB50