MFC tout simple en fonction de la date

Bonjour le forum,

Je cherche à mettre en évidence les dates d'une colonne (à partir de la ligne 10 dans l'exemple ci-dessous) qui sont dépassées par rapport à aujourd'hui:

For Each cell In Range("A10:A" & Range("A" & Rows.Count).End(xlUp).Row)
If Now() < cell.Value Then
cell.Font.Color = -16776961
 End If
Next cell

Mais cela fonctionne pas: Me met en rouge toutes les lignes de la colonne.

J'ai aussi essayé avec des:

if cell.value > Date Then

etc...

Mais sans succès.

Alors je me suis dit que c'est une histoire de format de cellule et j'ai essayé naïvement de définir ma colonne au début :

Columns("A:A").NumberFormat = "m/d/yyyy"

Mais niet....

Est-ce que je dois transformer la date en numéro de serie ?

Sans me donner un truc tout fait, où est ce que je ne réfléchi pas juste ??

Merci à vous et bonne journée

Bonjour,

Tu dis vouloir tester les dates "dépassées" par rapport à aujourd'hui ..

Du coup, quel signe faut-il entre Cell.value ...et Date ???

Si la valeur de la cellule est plus garde qu'aujourd'hui alors rouge:

if cell.value > Date Then

Cela revient au même que de dire:

Si aujourd'hui est plus petit que la valeur de la cellule alors rouge:

if Date < cell.value Then

non ?

Bonjour,

En toute logique, si tu cherches à mettre en évidence les dates qui sont dépassées par rapport à aujourd'hui (date d'échéance), tu dois coder :

    For Each cell In Range("A10:A" & Range("A" & Rows.Count).End(xlUp).Row)
        If cell.Value < Date Then
            cell.Font.ColorIndex = 3
        End If
    Next cell

Par contre, si tu appliques cette procédure et qu'aucune de tes cellules ne se met en rouge, c'est que le format de tes cellules n'est pas reconnu comme date.

Tu peux alors tenter la manip suivante :

Tu saisis le chiffre 1 dans une cellule quelconque.

Tu copie cette valeur (CTRL +C).

Tu sélectionnes ta plage de dates en colonne A

Puis clic droit > Collage spécial > Multiplication > OK

A+

Bonjour à tous,

frangy a 100% raison ...

Mais toi qui demandais que l'on ne te donne pas la solution ... mais qu'on t'aiguille uniquement sur ton erreur de raisonnement ....

Bonjour,

maintenant que la réponse est donnée, je joins un petit fichier graphique pour expliquer ce que vous savez déjà...

Cela dit il pourra servir à d'autre...

@ bientôt

LouReeD

LouReeD a écrit :

Bonjour,

maintenant que la réponse est donnée, je joins un petit fichier graphique pour expliquer ce que vous savez déjà...

Cela dit il pourra servir à d'autre...

@ bientôt

LouReeD

Bien vu ... Olivier ...

Un graphique démystifie toujours de façon plus dramatique les choses ...

Merci ... Je le conserve dans mes archives ...

Hello,

En fait j'ai pas bien compris où vous vouliez en venir sauf peut-être me dire que j’étais bien sur la bonne piste... Et que c’était bien une histoire de format de cellule.

Je suis content j'ai essayé un truc et hop ...

Il fallait juste déclarer la variable:

Dim aujourdhui As Date
aujourdhui = Now()
For Each cell In Range("A10:A" & Range("A" & Rows.Count).End(xlUp).Row)
If aujourdhui > cell.Value Then
cell.Font.ColorIndex = 3

Et ça fonctionne nickel !

Merci pour le temps que vous m'avez accordé, très sympa le forum ! 8)

Re,

Tu es passé par des chemins tortueux ...

Si tu permets un petit conseil ...

Tu copies le code de frangy ... et tu prends le temps qu'il faut pour le décortiquer et le comprendre ...!!!

Rechercher des sujets similaires à "mfc tout simple fonction date"