Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Contenu d'une cellule en fonction de la date d'une autre cellule

mwasikitoko

XLDnaute Nouveau
Bonjour,
j'ai un fichier avec une colonne correspondant à une date d'expiration...
EN fonction de la date du jour, le remplissage est rouge si expiré, orange si expiration dans moins de 3 moins et jaune si expiration dans moins de 6 mois et vert si en curs (donc au delà de 6 mois).
Ce remplissage est obtenu par mise ne forme conditionnelle.
Je souhaiterais avoir une colonne qui affiche le texte en toute lettre.
Je m'explique
Date reference AUJ 10 MAI 2020
Si en A4, j'ai Date Expiration 07/04/2020, la colonne est en rouge et la colonne suivante devra afficher "Expiré" en rouge et gras
Je joins un fichier avec le format spécifique
et j'ai essayé la formule suivante :

=SI(AUJOURDHUI()>$A4;"Expiré";SI(ET($A4>AUJOURDHUI();$A4=AUJOURDHUI()>MOIS.DECALER($A4;-6));"Expire dans 6 mois";SI(ET($A4>AUJOURDHUI();$A4=AUJOURDHUI()>MOIS.DECALER($A4;-3));"Expire dans 3 mois";SI($A4>AUJOURDHUI();"En cours"))
mais je n'obtiens pas le résultat.
J'utilise la version Excel365: j'ai testé Si.conditions sans succès.
Mais la saisie se fera sur Excel2013 ou Excel 2017.
Merci pour toute aide
Mwasikitoko
 

Pièces jointes

  • MFC Date_Texte.xlsm
    9.7 KB · Affichages: 15
Solution
Bonjour à tous
ou
VB:
=SI(A6<AUJOURDHUI();"Expiré";SI(JOURS(A6;AUJOURDHUI())<91;"Expire dans 3 mois";SI(ET(JOURS(A6;AUJOURDHUI())>90;JOURS(A6;AUJOURDHUI())<181);"Expire dans 6 mois";"En cours")))

jpb388

XLDnaute Accro
Bonjour à tous
ou
VB:
=SI(A6<AUJOURDHUI();"Expiré";SI(JOURS(A6;AUJOURDHUI())<91;"Expire dans 3 mois";SI(ET(JOURS(A6;AUJOURDHUI())>90;JOURS(A6;AUJOURDHUI())<181);"Expire dans 6 mois";"En cours")))
 

mwasikitoko

XLDnaute Nouveau
Bonjour jpb388

VB:
=SI(A6<AUJOURDHUI();"Expiré";SI(JOURS(A6;AUJOURDHUI())<91;"Expire dans 3 mois";SI(ET(JOURS(A6;AUJOURDHUI())>90;JOURS(A6;AUJOURDHUI())<181);"Expire dans 6 mois";"En cours")))
C'est plus celle-là qui convient... En effet, celle-ci prend en compte la condition "En cours", chose que ne fait pas la formule ci-dessous

VB:
=SI(A4<AUJOURDHUI();"Expiré";SI(A4<AUJOURDHUI()+90;"Expire dans 3 mois";SI(A4<AUJOURDHUI()+180;"Expire dans 6 mois";"")))
Mille mercis
Mwasikitoko
 

mwasikitoko

XLDnaute Nouveau
Bonsoir,
et ça, qu'en pensez-vous ?
Cdlt
C'est exactement ce que que j'attends. MERCI, MERCI
...mais je ne comprends pas du tout la logique du code (pourtant j'essaie)
Dans mon fichier de travail, la colonne Date est en N et la colonne Accord en O.
Comment insérer le code vba proposé ?
Je dois insérer les colonnes C(masquée), E et F
Je note aussi que des noms ont été définis...
Bref je n'arrive pas à appliquer car je ne comprends pas tout ce qu'il faut faire.
Merci d'avance pour plus de précisions
Mwasikitoko
 

Gégé-45550

XLDnaute Accro
Bonjour,

La colonne C (masquée car c'est une colonne "technique" mais elle peut être non masquée si on le souhaite) contient les calculs nécessaires au bon fonctionnement de l'ensemble. Vous pouvez sans problème la déplacer en colonne P, il suffit de recopier les formules.
La colonne E ne sert à rien, elle n'est là que pour visualiser les codes couleur et s'assurer (pour le test) que les couleurs créées par la MFC sont correctes. Les cellules F4, F6, F8 et F10 servent de "modèle" pour l'inscription dans la colonne "État", ce qui permet de modifier à un seul endroit le libellé et la mise en forme de ce qu'on veut écrire dans cette même colonne "État".
Par contre, si vos colonnes "vraies" sont en N et O, il faudra modifier en conséquence les formules dans les MFC et le code VBA bien entendu.
Dans les MFC, il faudra remplacer A par N et C par P.
Dans la macro, il faudra seulement remplacer C par P et mettre vos données des colonnes N, O et P sous forme de tableau structuré (commande du ruban : Accueil/Mettre sous forme de tableau) en précisant que vos données comportent des en-têtes (peu importe la mise en forme de tableau que vous choisirez). Le tableau structuré devra s'appeler "Tableau1" sinon il faudra modifier la macro en conséquence. Le nom défini comme Date_Expir est une scorie de tests précédents, il ne sert à rien.
Si vous voulez, envoyez-moi votre fichier (vide de données sensibles) en message privé et je vous ferai la MaJ.
Cdlt
 
Dernière édition:

mwasikitoko

XLDnaute Nouveau
Bonjour Gégé-45550,
Merci pour ces différentes explications que je prends le temps de lire attentivement maintenant.
J'ai saisi certains éléments des explications et ai commencé à faire quelques modifications dans le fichier.
Mes actions :
1. Colonne C de ton fichier est une colonne technique. Je l'ai insérée et copier les formules dans le contexte du fichier...Elle restera masquée dans la version finale de mon fichier
2. Les cellules Modèles F sont mises dans la feuille "ListeChoix" de mon fichier.
3. La colonne E est également collée dans cette feuille pour visualiser les codes couleurs
4. J'ai repris les MFC
5. Je pense avoir structuré les colonnes N,O et P en Tableau1, modifié le code VBA...
Mais ça marche pas...donc je vous envoie le fichier...il n'y a plus de données sensibles
Très grand merci
Cordialement
Mwasikitoko
 

Pièces jointes

  • Registre Accords 2020 Version GG-45550.xlsm
    573.3 KB · Affichages: 3

Gégé-45550

XLDnaute Accro
Bonjour,

Voilà.
J'ai supprimé la colonne technique P en modifiant les MFC et le code, que j'ai adapté pour qu'il fonctionne.
Cdlt
 

Pièces jointes

  • Registre Accords 2020 Version GG-45550.xlsm
    577 KB · Affichages: 4

Gégé-45550

XLDnaute Accro
Re-bonjour,
l'heure du déjeuner est propice à la réflexion.
Le programme proposé souffre d'une faille de conception.
En effet, si les couleurs et rappels se mettent correctement à jour à chaque modification, ajout ou suppression de dates concernant l'accord, il n'en est pas de même au fur et à mesure du temps qui passe.
Je m'explique : Prenons par exemple le cas de la cellule N3 ou l'accord expire le 15/09/2020.
Si aucune modification n'intervient jamais sur cette ligne jusque par exemple au 10/09/2020, la valeur de la cellule O3 ne changera jamais et elle restera vide (le code demandé met à jour cette valeur UNIQUEMENT si une date ou une durée de validité change).
Donc, par exemple le 10/08/2020, elle apparaîtra toujours vide et ne passera jamais par les alertes souhaitées (en cours, expire dans ..., expiré). seuls les codes couleurs des MFC dans la colonne N seront mis à jour automatiquement.
Je vous propose donc ci-joint une version évoluée qui contient un bouton "Actualise" dans l'en-tête de la colonne O. Cela permettra de lancer périodiquement une actualisation des valeurs de la colonne O en appuyant sur ce bouton.
Si on veut automatiser ce processus, par exemple, à chaque ouverture du fichier, il suffit de copier la commande "Actualise" dans la section Open de ThisWorkBook.

Cdlt
 

Pièces jointes

  • Registre Accords 2020 Version GG-45550.xlsm
    596.2 KB · Affichages: 3

mwasikitoko

XLDnaute Nouveau
Bonjour Gégé-4550
Merci d'avoir vu cette "faille de conception" qui laisse en position statique la colonne O en absence de Changement.
C'est vraiment très gentil de votre part de considérer mon cas ...à ce point.
Je vais donc regarder le nouveau fichier et reviens vers vous.
Mwasikitoko
 

mwasikitoko

XLDnaute Nouveau
Re-Bonjour,
je comprends la logique de votre raisonnement avec le bouton "Actualisé"
Mais je me rends compte qu'avec une MFC en Jaune ou Orange, correspondant respectivement à "Expire dans moins de 3 mois" et "Expire dans moins de 6 moins", la colonne O ne s'actualise pas..
Et c'était déjà le cas dans le fichier précédent ...
Mwasikitoko
 

Gégé-45550

XLDnaute Accro
Bonsoir,
il "traînait" une coquille dans le code désormais corrigée.
Voici la nouvelle mouture, a priori fonctionnelle.
Avant de la charger et de la tester, utilisez l'ancienne version et regardez ce qui se passe en N7 si vous entrez en L7 une date de signature d'accord (par exemple le 11/07/2018) et si vous tapez comme durée de validité en L7 "1 an" (sans S) => ce cas non prévu entraîne une erreur. Maintenant, si au lieu de taper "1 an" en L7, vous tapez "12 mois", tout va bien ... sauf que, remplacez 12 mois par 9 mois et regardez ce qui se passe en N7 !
Dans cette nouvelle mouture, j'ai donc corrigé aussi votre formule dans la colonne N.

Dites-moi si maintenant le fonctionnement est nominal.
Bon week-end.
Cdlt
 

Pièces jointes

  • Registre Accords 2020 Version GG-45550.xlsm
    597.8 KB · Affichages: 3

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…