Microsoft 365 Recherche v et savoir si la date indiquée est > , et à moins de 15 jours d'aujourd'hui

abramolaura

XLDnaute Nouveau
Bonjour à tous,

Je viens désespérément à votre aide je n'arrive pas à trouver 2 fonctions :

J'ai une matrice (G032) avec différentes dates (prévisionnelle et réelle) pour chaque jalon T0, T3, T3C, T4.

Colonne Jalon en retard
Pour chaque jalon, quand la date réelle est complétée dans le tableau G032, je souhaite que la date prévisionnelle s'affiche mais seulement si la date du jalon prévisionnel prévue est > à la date d'aujourd'hui, sinon cellule vide.

Colonne Jalon à venir dans les 15 jours.

Pour chaque jalon, quand la date réelle est complétée dans le tableau G032, je souhaite que la date prévisionnelle s'affiche mais seulement si la date du jalon prévisionnel est prévue 15 jours avant la date d'aujourd'hui, sinon cellule vide.

Voici mon essai :
SI(SIERREUR(ET(RECHERCHEV($AE199;'G032'!$G:$AW;19;FAUX)="";RECHERCHEV($AE199;'G032'!$G:$AW;18;FAUX)<>0;RECHERCHEV($AE199;'G032'!$G:$AW;18;FAUX)<=AUJOURDHUI();RECHERCHEV($AE199;'G032'!$G:$AW;18;FAUX)>=AUJOURDHUI()-20));RECHERCHEV($AE199;'G032'!$G:$AW;18;FAUX)&TEXTE(RECHERCHEV($AE199;'G032'!$G:$AW;18;FAUX);"JJ/MM/AAAA");"");"")

Voici un fichier test en PJ

Merci beaucoup pour votre aide,

Laura
 

Pièces jointes

  • Test.xlsx
    43.9 KB · Affichages: 6

abramolaura

XLDnaute Nouveau
Je viens de me rendre compte que mon code essai n'était pas adapté au fichier test

Voici mon code adapté au fichier test (pour la date 15 avant la date d'aujourd'hui :
=SI(SIERREUR(ET(RECHERCHEV($A3;'G032'!F1:U3;9;FAUX)="";RECHERCHEV($A3;'G032'!F1:U3;8;FAUX)<>0;RECHERCHEV($A3;'G032'!F1:U3;8;FAUX)<=AUJOURDHUI();RECHERCHEV($A3;'G032'!F1:U3;8;FAUX)>=AUJOURDHUI()-20));RECHERCHEV($A3;'G032'!F1:U3;8;FAUX)&TEXTE(RECHERCHEV($A3;'G032'!F1:U3;8;FAUX);"JJ/MM/AAAA");"");"")
 

abramolaura

XLDnaute Nouveau
Bonjour,
Merci de votre réponse.
Je souhaite que l’information soit dans une seule cellule selon la date du jalon.
Par exemple
Des qu’un jalon est passé il passe en date réelle, du coup Il me faut la date du prochain jalon prévisionnel expiré en fonction de la date du jour et savoir ceux qui vont arrivés dans les 15 jours avec indication du jalon (T0, T3,T3c ou T4)
Merci encore
 

abramolaura

XLDnaute Nouveau
Je sais que ma demande est pas facile alors je vous remets en fichier test ce que j'attends exactement avec des exemples concrets

Nous sommes le 27/03/2022
En colonne C, je devrais avoir 0 car aucun jalon n'est en retard vu que le prochain jalon indiqué en T3 est le 31/03/2022 et le T0 est déjà passé car la date réelle est complétée
Par contre en colonne D, "T3 31/03/2022" car dans les 15 jours, il y a le T3 qui est prévu en date prévisionnelle


Nous sommes le 01/04/2022
En colonne C, je devrais avoir "T3 31/03/2022", car nous sommes le 01/04/2022 et en date prévisionnelle du prochain jalon qui est T3 il est indiqué une date prévisionnelle au 30/03, il y a donc un jalon en retard, et je voudrais avoir comme information le numéro de jalon et la date soit "T3 31/03/2022"
En colonne D, "T3C 05/04/2022" car dans les 15 jours, il y a le T3C qui est prévu en date prévisionnelle
 

Pièces jointes

  • Test.xlsx
    44 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour abramolaura,
Si j'ai bien tout compris, en PJ un essai avec deux fonctions perso :
VB:
    Application.Volatile
    On Error Resume Next
    With Sheets("G032")
        L = Application.Match(ID, .[A:A], 0)
        If IsError(L) Then
            Retard = "Erreur sur ID."
            Exit Function
        End If
        Retard = ""
        For C = 6 To 13 Step 2                  ' De la colonne F à M
            If .Cells(L, C + 1) = "" Then       ' Si date réelle vide
                If .Cells(L, C) < Now Then      ' Si répassée : Retard
                    Retard = .Cells(1, C)       ' Retour = Phase
                    Exit Function
                End If
            End If
        Next C
    End With
End Function
Function Prochain(ID)
    Application.Volatile
    On Error Resume Next
    With Sheets("G032")
        L = Application.Match(ID, .[A:A], 0)
        If IsError(L) Then
            Prochain = "Erreur sur ID."
            Exit Function
        End If
        Prochain = ""
        For C = 6 To 13 Step 2                  ' De la colonne F à M
            If .Cells(L, C + 1) = "" Then       ' Si date réelle vide
                If .Cells(L, C) >= Now And .Cells(L, C) <= Now + 15 Then ' Si date sous 15 jours
                    Prochain = .Cells(1, C)     ' Prochain = phase
                    Exit Function
                End If
            End If
        Next C
    End With
End Function
Les syntaxe sont : =Retard(ID) et =Prochain(ID)
 

Pièces jointes

  • Test (23).xlsm
    53.6 KB · Affichages: 4

Statistiques des forums

Discussions
311 720
Messages
2 081 923
Membres
101 840
dernier inscrit
SamynoT