Contenu d'une cellule dépendant de la date du jour

Bonjour

La colonne A avec des dates au format texte (style "2017-12-31")

Je veux que la colonne B contienne "Obsolète" si la date du jour est postérieure à la date de la colonne A

Ca doit être un formatage conditionnel mais je ne sais pas par quel bout le prendre

Merci si quelqu'un peut m'aider !

=SI(CNUM(A1)<AUJOURDHUI();"Obsolète";"")
20classeur1.xlsx (8.21 Ko)

Bonjour Fred, bonjour le forum,

Peut-être comme ça :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DL As Long 'déclare la variable DL (Dernière Ligne)
Dim I As Long 'déclare la variable I (Incrément)
Dim D As Date 'déclare la variable D (Date)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
DL = O.Cells(Application.Rows.Count, "A").End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne A de l'onglet O
For I = 1 To DL 'boucle sur toutes les lignes I de 1 à DL
    'définit la date D
    D = DateSerial(Year(O.Cells(I, 1)), Month(O.Cells(I, 1)), Day(O.Cells(I, 1)))
    'si la date du jour est supérieure à D renvoie "Obsolète" dans la colonne B, sinon vide la cellule en colonne B
    If Date > D Then O.Cells(I, 2).Value = "Obsolète" Else O.Cells(I, 2).Value = ""
Next I 'prochaine ligne de la boucle
End Sub

[Édition]

Bonjour Steelson nos posts se sont croisés... Pfff ! Je me demande pourquoi faire si simple quand on peut faire si compliqué !...

Il y a de l'idée mais la date est interprétée comme l'opération 2017-12-31 = 1974

On peut faire mieux ?

Merci

NB : cette réponse s'applique au premier retour je teste le second !

Bonjour à tous,

Je me contenterais de ça :

Sub Obsol()
    Dim d, n%, i%
    Application.ScreenUpdating = False
    With ActiveSheet
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        For i = 1 To n
            d = DateValue(.Cells(i, 1))
            If d < Date Then .Cells(i, 2) = "Obsolète"
        Next i
    End With
End Sub

"2017-12-31" est un format reconnu comme date par VBA...

Bonjour à tous,

Une proposition :

=SI(DATEVAL(A1)<AUJOURDHUI();"Obsolète";"")
fredgaub a écrit :

Il y a de l'idée mais la date est interprétée comme l'opération 2017-12-31 = 1974

On peut faire mieux ?

cela veut dire que ce n'était pas une date au format texte comme annoncé !

mets un fichier la prochaine fois

JFL a écrit :

Bonjour à tous,

Une proposition :

=SI(DATEVAL(A1)<AUJOURDHUI();"Obsolète";"")

Merci bcp, c'est simple et efficace, pas besoin de macro

Rechercher des sujets similaires à "contenu dependant date jour"