Rapport de message :*
 

Mise en forme conditionnelle - Comparaison de dates & DATEDIF

Titre du sujet : Mise en forme conditionnelle - Comparaison de dates & DATEDIF
par Ame le 27/07/2016 18:09:28

Bonjour à tous,

 

Je fais appel à vous, car vous me semblez connaisseurs et réactifs. Certainement plus dégourdis que moi avec mon fichier Excel...

 

Pour vous dresser le tableau, j'ai la gestion d'un tableur - base de données - qui recense les formations des salariés de mon entreprise. Le fichier est bien entendu attaché en pièce-jointe.

 

Construction de la BdD :

On y trouve les informations suivantes :

NOM Prénom - Unité (ou service) - Formation - Date de formation initiale - Type (pour des formations spécifiques) - Date de dernier recyclage

 

Vous vous en doutez, j'ai un grand nombre de salariés inclus dans cette base de données (les noms ont été changés, peut-être que ça vous amuseras cheeky ). Ces mêmes salariés se forment à tout un tas de formations différentes, mais pour l'exemple, je n'ai mis que celle de SST (Sauveteur Secouriste au Travail).

Sont remplies à chaque fois, la date de formation initiale et, s'il y a lieu, la date de recyclage. Les deux sont amenées à être modifiées par saisie au fil du temps.

 

 

Mon objectif :

Savoir pour chaque salarié si sa formation est à jour (vis-à-vis de la périodicité de recyclage obligatoire) par rapport à une date donnée.

 

Pour l'instant j'ai fait des mises en forme conditionnelles sur les dates de dernier recyclage et les dates de formations initiales (lorsqu'il n'y a pas de recyclage) sur 3 échelles :

Rouge : la date de recyclage est dépassée.

Orange : le recyclage est à faire dans moins d'un an.

Vert : formation à jour, recyclage dans plus d'un an.

-> PAR RAPPORT A LA DATE DU JOUR (soit avec la fonction AUJOURDHUI() )

 

Ceci pour chacune des formations et sous-catégories de formation, chacune ayant une périodicité différente. Autant dire que ça fait un paquet de mises en forme conditionnelles !!! frown

 

Mon problème :

Avoir la validité d'une formation par rapport à la date du jour c'est bien, mais l'avoir par rapport à une date au choix, c'est mieux !!

La question se pose par exemple quand on effectue le plan de formation pour l'année ou le vote des budgets (-> nombre recyclage à prévoir d'ici la fin de l'année), ou savoir qui sera à jour dans 6 mois ... etc

 

J'ai donc créé une dernière colonne "{C}{C}VALIDITÉ{C}{C}{C}{C}{C}{C} A LA DATE CHOISIE" qui reporte les dernières dates de formations des salariés (que ce soit de l'initial ou du recyclage) et leur applique le même schéma de mise en forme conditionnelle.

 

J'utilise la fonction DATEDIF, mais je n'arrive à aucun résultat cohérent.

 

J1 étant la cellule ou se trouve la date choisir par l'utilisateur :

SST dépassé de 2 ans :
=ET($D2="SST";(DATEDIF($H2;$J$1;"d"))>730,5)

SST plus d'1 an et moins de 2 ans :
=ET($D2="SST";730,5>=(DATEDIF($H2;$J$1;"d"))>=365,25)

SST moins d'1 an (à jour) :
=ET($D2="SST";(DATEDIF($H2;$J$1;"d"))<365,25)

 

Les questions que je vous pose :
 

1. Est-ce que l'un d'entre vous saurait me dire pourquoi les mises en formes conditionnelles ne fonctionnent pas (erreur de logique dans les dates) ? Où est l'erreur dans mes formules ?

 

2. Est-ce que cela vous semble faisable de créer 2 boutons commandés par des macros, l'un inscrivant la date AUJOURDHUI() en J1, l'autre permettant la saisie libre d'une date en J1 ; le tout permettant de changer les mises en formes conditionnelles selon les dates ?

 

3. Est-ce qu'il est plus judicieux de remplacer toutes mes mises en formes conditionnelles en VBA et les commander par des macros ?



Merci par avance pour vous réponses, vous me seriez d'une très grande aide !!

 

 

PS : je n'ai vu aucune rubrique présentation dans le forum, j'espère que je ne débarque pas trop comme un cheveu sur la soupe !