Tu demandes trop de chose à une formule qui voit certaine situation répondre à 2 conditions :
A Planifier » Quand, il est indiqué à former dans la colonne C ou bien que la date de recyclage vient à échéance de préférence 1 an avant l’échéance pour avoir le temps de planifier la formation.
et
Attention » quand la date en colonne K de cette même ligne est inférieur à celle d’aujourd’hui ou absente
exemple ligne 28 j’ai déjà l’information « Attention » car la date en colonne K de cette même ligne est inférieur à celle d’aujourd’hui ou absente
Or pour cette même ligne j’ai en colonne C « à former » qui doit maintenant selon tes souhaits mettre dans cette même cellule « A planifier »
C est impossible de demander à une formule d avoir 2 conditions vrais avec chacune sa propre conséquence
Elle ne saura pas laquelle appliquer
Il faut choisir entre l une ou l autre (Attention ou À planifier) ou les répartir entre 2 cellules distincts
Donc laisser dans la colonne actuelle « Indicateur » la formule en place qui mettra pour la ligne 28 le résultat « Attention » et la colonne suivante une nouvelle formule pour les nouvelles conditions qui mettra pour cette même ligne « A planifier » cette ligne a ces 2 conditions Vrais donc aura colonne « Indicateur » Attention et la suivante A planifier
A toi de voir ce qu il faut mettre en place mais surtout pas une seule cellule pour l ensemble de ces conditions celles en place et les nouvelles (Attention et A planifier)
Très bien. Je viens de comprendre la problématique.
Je comprends ce que tu veux dire maintenant. N’est-il pas possible de supprimer cette formule et de tenir seulement compte de la colonne date de la formation et celle du recyclage ? Quand elles sont correctement renseigné tout va bien donc « OK » et quand le recyclage vient à échéance ou bien que la première colonne montre à former cela m’affiche « à planifier ». Puis on rajoute une colonne quand il faut faire attention.
Ci-joint ma proposition avec les formules établit dans l’ordre de priorité ci-aprés ;
« A Planifier » Quand, il est indiqué à former dans la colonne C ou bien que la date de recyclage vient à échéance de préférence 1 an avant l’échéance pour avoir le temps de planifier la formation.
« OK » Quand, les colonnes sont correctement renseignées (date de la formation et Date de recyclage).
« ATTENTION » du coup le laisser seulement en lien avec la colonne Planification si la date de planification est dépassée.
C’est à dire que si plusieurs conditions ci-dessus sont vraies c’est de la première à la dernière que la priorité s’établit
C’est donc d’abord A Planifier qui est généré en résultat de formule si ses conditions sont vraies sinon OK sinon Attention
La formule se base pour toutes les conditions concernant les dates sur la colonne « Planification » colonne J seule à être au format européen (JJ/MM/AAAA)
La colonne « Date de recyclage » colonne I est difficilement exploitable car issue d’une formule complexe et au format américain (MM/JJ/AAAA)
Avec la colonne « Planification » colonne J cette nouvelle formule fonctionne sans faille
Avec la colonne « Date de recyclage » colonne I elle est aléatoire
Une fois la date colonne « Date de recyclage » colonne I établit il faudrait la reporter en colonne « Planification » colonne J au format européen
L’alimentation de la colonne « Indicateur » colonne K se fait dans ce contexte en fonction des conditions ci-dessus décrites
Seule la dernière ne sera jamais appliquée car elle tombe dans les conditions de la première qui viendra donc en remplacement
Essaies de voir avec des tests sinon il faut revoir les données dates et surtout leur format pour la mise en place de toutes ces conditions
Le fichier avec en colonne « Indicateur » colonne K la nouvelle formule
Après analyse c’est bien le format Américain qui pose problème colonne « Date de recyclage » colonne I
Avec une simple formule je suis confronté à la difficulté :
si dans une cellule A1 par exemple je met une date au format américain MM/JJ/AAAA avec cette formule pour extraire l’année de cette date ; ANNEE(A1) tant que le JJ ne dépasse pas 12 j’obtiens bien le AAAA
exemple :
en A1 : 01/12/2020 (pour le 12 janvier 2020) la formule donne bien AAAA : 2020
Mais dés que je mets en A1 : 01/13/2020 (pour 13 janvier 2020 en format américain) la formule ne donne plus AAAA mais #valeur
Le dépassement de la 2° partie de la date du nombre de mois sur une année mets à mal les formules
Il faut impérativement un format européen pour le bon fonctionnement des formules
Ci-joint une version avec la colonne « Date de recyclage » colonne I en format Européen la formule colonne « Indicateur » colonne K avec ces conditions :
« A Planifier » Quand, il est indiqué à former dans la colonne C ou bien que la date de recyclage vient à échéance de préférence 1 an avant l’échéance pour avoir le temps de planifier la formation.
« OK » Quand, les colonnes sont correctement renseignées (date de la formation et Date de recyclage).
« ATTENTION » du coup le laisser seulement en lien avec la colonne Planification si la date de planification est dépassée.
Désoler de répondre que maintenant. j’espère que tu vas bien ?
Cela fonctionne comme je le voulais.
Sauf que j’ai fait une petite bourde, je t’ai envoyé le fichier avec les onglets " Nouveau salarié" et « Retirer un salarié » que tu m’as modifié en " Ajouter" et « Retirer » juste avant.
Je suis désolé, c’est ma faute et je ne saurais pas le faire seul.
C’est impeccable. Peut tu juste m’expliquer pourquoi la mise en forme conditionnelle dans la colonne I ne fonctionne pas quand la date est Inférieur à « AUJOURD’HUI » ?
J’ai regardé tes MFC
Le souci est que l’on ne peux pas personnaliser chaque cellule de la colonne I Il faudrait que chaque MFC soit en rapport avec sa propre cellule pour réagir en fonction de sa date ou de son état
Or l’ensemble des données est piloté par un TDC qui uniformise chaque cellules d’une même colonne
Cela se manifeste notamment lorsque l’on saisit quelque chose dans une cellule libre d’une nouvelle colonne toutes les cellules de cette même colonne dans le champ d’action du TDC prennent l’élément introduit à l’identique
Je suppose que c’est pour une uniformité pour une même colonne
Donc difficile dans ce contexte de demander pour une colonne à chaque cellule d’avoir sa propre mise en forme elle prennent toute celle que l’on vient de mettre en place dans une de celles-ci
Je te propose cette solution par macro
Si tu interviens en colonne C « Date de la formation » ou en colonne E « Formation » la macro : « Sub Couleur_colonne_I() » est déclenchée et analyse toutes les cellules colonne I « Date de recyclage »
Si vide met une couleur si < date d’aujourdhui met une 2° couleur si > date d’aujourdhui met une 3° couleur
Une petite amélioration pour activer la macro à l’ouverture du fichier et ainsi d’avoir la colonne I « Date de recyclage » toujours actualisée des bonnes couleurs
J’espère que tu vas bien et je te remercie de ton aide que tu a pu m’apporter.
J’ai un petit souci avec le formulaire retiré une personne qui masque la ligne selon la personne indiquer. Elle fonctionne très bien sauf, quand on filtre sur un nom/prénom, formation ou quelconque colonne cela fait reparaître les personnes. J’ai tenté de modifier la formule pour que cela me supprime directement la personne concernée, mais je n’y arrive pas.
Il s’agit de cette formule ci-dessous.
Citation
Sub RetirerPersonne()
Chaine = [Nom] & " " & [Prénom]
nomretiré = Split(Chaine, " ")(0)
prénomretiré = Split(Chaine, " ")(1)
'Suivi des formations
With Sheets(« Suivi des formations »)
NbLig = Application.CountIf(.Range(« D20:D1000 »), « ")
For i = 20 To 20 + NbLig
If .Cells(i, 4) = Chaine Then .Cells(i, 4).EntireRow.Hidden = True
Next i
End With
'Salaries
With Sheets(« Salaries »)
NbLig = Application.CountIf(.Range(« D7:D1000 »), " »)
For i = 7 To 7 + NbLig
If .Cells(i, 3) = nomretiré And .Cells(i, 4) = prénomretiré Then .Cells(i, 4).EntireRow.Hidden = True
Next i
Range(« D5,F5 »).ClearContents
End With
End Sub
Je souhaite remplacer le fait de masquer une personne par la suppression de cette personne.
Cela marche sans problème.
Une petite question concernant une des fonctions dans la date de recyclage.
Cela concerne cette fonction :
Citation
=SI(ESTERREUR(SI(GAUCHE([@Formation];1)=« > »;TEXTE(JOUR([@[Date de la formation]]);« 00 ») & « / » & TEXTE(MOIS([@[Date de la formation]]);« 00 ») & « / » & ANNEE([@[Date de la formation]])+5;SI(GAUCHE([@Formation];1)=« < »;TEXTE(JOUR([@[Date de la formation]]);« 00 ») & « / » & TEXTE(MOIS([@[Date de la formation]]);« 00 ») & « / » & ANNEE([@[Date de la formation]])+3;« »)));« »;SI(GAUCHE([@Formation];1)=« > »;TEXTE(JOUR([@[Date de la formation]]);« 00 ») & « / » & TEXTE(MOIS([@[Date de la formation]]);« 00 ») & « / » & ANNEE([@[Date de la formation]])+5;SI(GAUCHE([@Formation];1)=« < »;TEXTE(JOUR([@[Date de la formation]]);« 00 ») & « / » & TEXTE(MOIS([@[Date de la formation]]);« 00 ») & « / » & ANNEE([@[Date de la formation]])+3;« »)))
Est-il possible de rajouter « * » pour les formations qui durent 2 ans ?
J’ai tenté de le faire moi-même, mais j’endommage plus la fonction qu’autre chose.
Bonjour
Peux tu préciser ce que tu cherches à obtenir
Je suppose que tu veux traiter le cas des formation sur 2ans avec pour les cibler dans leur nom en début le caractère « * » comme pour ceux de 3ans le caractère « < » et 5ans le caractère « > »
Et ainsi de calculer leur date de recyclage
Merci de me confirmer