Formule excel complexe

Résolu
Bonjour,

Je souhaiterais inclure une formule d'alerte sur mon tableur Excel et je sens qu'il ne me manque pas grand chose pour être dans le vrai. En gros :

Si la case formation est vide alors la case actuelle ne doit rien afficher
Si la case formation a une croix et que la case date est vide alors la case actuelle doit afficher Passage
Si la case formation a une croix et que la case date affiche cette année ou l'année suivante alors la case actuelle doit afficher Renouvellement

Voici la formule que j'écris :

=SI(ESTVIDE(O7);"";SI(ET(O7="X";ESTVIDE(J7));"Passage";SI(O7="X";J7=<AUJOURDHUI()-365;"Renouvellement")))

Pouvez-vous m'aider ?

Merci d'avance.

6 réponses

Résumé de la discussion

Une demande porte sur une formule Excel d’alerte qui, selon l’état de la case Formation et de la date associée, peut afficher rien, Passage ou Renouvellement. Les échanges explorent plusieurs variantes, avec ESTVIDE et ET et des tentatives autour de l’année courante ou suivante; l’approche aboutie propose de tester J7 vide pour Passage et le calcul de l’année pour Renouvellement. Une version corrigée propose de vérifier J7 vide pour Passage et d’utiliser ANNEE(AUJOURDHUI()) pour limiter Renouvellement à l’année en cours ou à l’année suivante, évitant les déclenchements erronés.

Bobot (l’IA à votre service)
  1. Bonjour,

    =SI(O7="";"";SI(ET(O7="X";J7="");"Passage";SI(ET(O7="X";J7>=ANNEE(AUJOURDHUI()));"Renouvellement";"")))


    1. Bonjour, elle ne fonctionne pas. Cela m'écrit Renouvellement pour des dates qui sont en 2022... Merci quand même ! :)
    2. @CqtKlzRectification :

      =SI(O7="";"";SI(ET(O7="X";J7="");"Passage";SI(ET(O7="X";J7-ANNEE(AUJOURDHUI())>=0;J7-ANNEE(AUJOURDHUI())<2);"Renouvellement";"")))
    3. @Yoyo01000Cela ne fonctionne toujours pas, je n'ai pas le renouvellement pour l'année en cours et N+1. Merci d'avoir essayé :)
    4. @CqtKlzBah si, cela fonctionne :





      Donc le problème vient d'ailleurs !
    5. @Yoyo01000D'accord, je ne sais pas d'où cela peut venir et malheureusement, je ne peux pas inclure de capture d'écran.. Merci quand même ! :)
  2. Bonjour,
    Voici la formule corrigée, manquait et "ET()"
    =SI(ESTVIDE(O7);"v";SI(ET(O7="X";ESTVIDE(J7));"Passage";SI(ET(O7="X";J7<=AUJOURDHUI()-365);"Renouvellement";"faux")))
    1. Bonjour, elle ne fonctionne pas. Cela m'écrit Faux pour des dates qui sont en 2021 alors qu'elles doivent être en Renouvellement et Faux à la place d'être vides... Merci quand même ! :)
  3. Bonjour,

    Pas bien compris pour le renouvellement ?

    Si la mention "Renouvellement" doit s'afficher pendant toute l'année qui précède la date inscrite en J7, alors :

    =SI(O7="";"";SI(ET(O7="X";J7="");"Passage";SI(ET(O7="X";AUJOURDHUI()>=MOIS.DECALER(J7;-12));"Renouvellement";"")))


    Cordialement
    1. Bonjour, votre formule fonctionne mieux mais elle m'écrit Renouvellement pour toutes les dates inférieures et supérieures au lieu de le mettre pour l'année en cours et N+1. Merci quand même ! :)
  4. Faudrait peut-être mieux expliquer en donnant des exemples

    MOIS.DECALER c'est date à date en tenant compte des années bissextiles
    En prenant la date d'aujourd'hui (6/11/2020) et si la date en J7 est 6/11/2021 ; la formule marque "renouvellement" pour toute la période du 6/11/20 au 6/11/21. Si J7 est 7/11/21 la cellule reste vide jusqu'à demain.

    A moins que finalement il faut marquer renouvellement pendant 1 an à partir de la date inscrite en J7.

    A te lire

    Cordialement
    1. Pour la faire simple, voici les colonnes de mon tableau :

      J7 = Formation à venir = Passage/Renouvellement/(Vide)
      F7 = Expire le = jj/mm/aaaa
      O7 = Catégorie 1 = X

      Le Renouvellement est à prévoir pour l'année en cours et l'année suivante. Si on a un permis dépassé de 1 an par exemple, nous devons faire un Passage, également si nous n'avons pas de date mais que la O7 est coché. Et si le permis est valable jusqu'en 2023, la case J7 doit être vide jusqu'à l'ouverture du fichier en 2022.

      Je ne sais pas si cela est plus clair pour vous.
      1. il faudrait s'entendre, tu nous fais corriger une formule dans laquelle tu références J7 alors que finalement c'est F7 qui est la date de bascule et que c'est en J7 que doit venir la formule.

        D'autre part tu écris ""Et si le permis est valable jusqu'en 2023, la case J7 doit être vide jusqu'à l'ouverture du fichier en 2022 "" doit-on considérer la date du 1/1/22 comme date de départ pour une date d'expiration en cours d'année 2023 ou bien un an avant celle-ci ???

        A te lire
        Cordialement
      2. @PapyLuc51J'ai fait une capture d'écran de mon tableau mais je ne peux l'inclure ici... En effet, ma réponse est erronée, voici la correction:
        F7 = Formation à venir = Passage/Renouvellement/(Vide)
        J7 = Expire le = jj/mm/aaaa

        Exemple de dates de mon tableau :
        5/23/2024
        4/26/2023
        10/17/2021
        C'était un exemple 2022. Ce que je souhaite, plus précisément c'est qu'il faut toujours que l'année en cours et l'année N+1 soient en Renouvellement qu'importe la date à laquelle j'ouvre le fichier. Si je l'ouvre actuellement, il faut que 2020 et 2021 soient en Renouvellement, si je l'ouvre en 2022, 2022 et 2023 en Renouvellement.

        J'ai essayé avec Mois.Décaler du coup mais ca me met Renouvellement absolument partout où il y a une date... Je ne l'ai peut-être pas placé au bon endroit dans ma formule...

        =SI(ESTVIDE(O7),"",SI(ET(O7="X",ESTVIDE(J7)),"Passage",SI(ET(O7="X",MOIS.DECALER(AUJOURDHUI(),J7)),"Renouvellement")))
      3. @PapyLuc51Salutations PapyLuc , il me semble que tu comprends mieux le sujet que moi !

        Perso, je suis perdu ou alors qq chose m'a échappé !?

        Je quitte le sujet, en sachant pertinemment que tu trouveras avant moi ce qui convient le mieux à CqtKlz
      4. @Yoyo01000Salutations Yoyo

        L'exemple que j'ai mis est fait avec la première formule que j'ai envoyée (mon message #3).
        La réponse de notre demandeur m'a conforté dans mon idée.

        @ CqtKlz

        Je viens de constater en relisant la formule que tu l'as mal recopiée (message #14)
        =SI(ESTVIDE(O7),"",SI(ET(O7="X",ESTVIDE(J7)),"Passage",SI(ET(O7="X",MOIS.DECALER(AUJOURDHUI(),J7)),"Renouvellement")))
        La partie en gras doit s'inscrire AUJOURDHUI()>=MOIS.DECALER(J7;-12).
        C'est à dire tu retires 12 mois à la date en J7 et Renouvellement s'inscrit quand la date du jour est égale ou dépasse se décalage et reste jusqu'à la date en J7.
        Et puis tu inscris toujours ESTVIDE(O7) ?? Est-ce à dire que O7="" qui est plus rapide à inscrire ne fonctionne pas sur ton Excel ?? Ça me parait étonnant !!.

        On peut même réduire la formule à
        =SI(O7="";"";SI(J7="";"Passage";SI(AUJOURDHUI()>=MOIS.DECALER(J7;-12);"Renouvellement";"")))

        qui fonctionne tout au bien.

        Cordialement
    2. Bonjour,
      Désolé, je quitte le poste.
      1. D'accord merci à vous, bon week-end :)