Condition si la cellule contient une date

sellig 29

XLDnaute Occasionnel
Bonjour à tous,
Cela ne me paraissait pas compliqué et pourtant je bloque...:confused: Je souhaiterai avoir le chiffre 1 apparaitre lorsque la cellule adjacente est renseignée uniquement par une date.
Merci d'avance pour votre aide.
 

Pièces jointes

  • Si la cellule contient une date.xls
    15.5 KB · Affichages: 215

Dull

XLDnaute Barbatruc
Re : Condition si la cellule contient une date

Salut sellig 29, le Forum

Une petite macro qui fait ce que tu demande
Code à mettre dans le Module de la Feuille cocernée
Code:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim C As Range
Range("E7:E15").ClearContents
For Each C In Range("D7:D15")
    If IsDate(C) Then C.Offset(, 1) = 1
Next C
End Sub

EDITION:
Re mon JC :cool:
Il me reste encore quelques vapeurs de Citron Vert qui m'a fait oublier de de réinitialiser le colonne E :eek:
Code modifié grâce à la perspicacité de l'ami JCGL

Bonne Journée
 
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Condition si la cellule contient une date

Bonjour à tous,

Avec un code :
VB:
Option Explicit


Sub Test()
Dim X%
Range("E7:E1000").ClearContents
For X = 7 To Range("D65536").End(xlUp).Row
If IsDate(Cells(X, 4)) Then Cells(X, 5) = 1
Next
End Sub

A + à tous

Edition : Pas vu l'ami Didier.... A+++
 

sellig 29

XLDnaute Occasionnel
Re : Condition si la cellule contient une date

Merci Dull,
Ta macro fonctionne à merveille mais j'aurai préféré une formule! J'ai présenté mon exemple simplement dans un fichier, dans le contexte dans laquelle elle sera réellement appliquée par la suite, il sera difficile de décliner cette macro.
 

Cousinhub

XLDnaute Barbatruc
Re : Condition si la cellule contient une date

Bonjour,

Bonjour Didier :D, JC :D (pas trop mal au caillou?)

Pour information, Excel considère une date comme un nombre.

Ainsi, le 01/01/2012 est considéré par Excel comme la valeur 40909.

Un simple essai de données/Validation pourrait te le démontrer :

Si tu exiges une date dans une cellule, en faisant Données/Validation, Autoriser "Date", Valeur min : 01/01/1900, Valeur Max : 31/12/9999, et que tu entres 40909, ben, tu as le droit.....

Sans macro, je crains qu'il soit bien difficile de déterminer si c'est une date ou non....

tu peux faire une fonction personnalisée, style :

Code:
Function EstDate(Cel As Range) As Byte
If IsDate(Cel) Then EstDate = 1
End Function

Et dans E7, tu mets :

Code:
=Estdate(D7)

Sinon, je ne vois pas trop

Bon courage
 

Dull

XLDnaute Barbatruc
Re : Condition si la cellule contient une date

Re le fil

En Formule cela me semble très difficile car pour les valeurs numériques comme 1 ou 55, dans ton exemple, cela correspond à des dates. (1 = 01/01/1900)

Maintenant s'il y a une date butoir où tu ne pourras pas descendre ex: 01/01/1910 ou pourrait éventuellement utiliser une formule tirée par les cheveux (milles excuses aux forrmulistes)

Code:
=SI(OU(D7<3654;ESTERREUR(DATE(ANNEE(D7);MOIS(D7);MOIS(D7))));"";1)

Mais c'est un pis-aller et pas sur que cela te convienne

Edition: Salut bhbh:), Patrick :)

Même conclusion bh²:)
Bonne Journée
 
Dernière édition:

Victor21

XLDnaute Barbatruc
Re : Condition si la cellule contient une date

Re,

Lire.cellule(7;la cellule) se révèle une piste erronée: ne lit que le format de la cellule, sans tenir compte de son contenu.
Ce qui fait que si D8 ou D9 sont au format date, bien que contenant du texte, la valeur renvoyée sera 1.
Piste donc à abandonner :(
 

eiffel38

XLDnaute Nouveau
Bonjour
L’inconvénient de tester si un champ est numérique pour savoir si c’est une date, c’est qu’évidemment, le chiffre 5 est une date…
donc, voici ce que l’on peut faire pour renforcer le contrôle, sans avoir à filtrer sur une période

=AND(LEFT(CELL(« FORMAT »;U3);1)=« D »;ISNUMBER(U3))

en gros, si la cellule contient l’un des formats Date ET que la cellule contient un chiffre, alors c’est une date
avec cette formule
44586 n’est pas une date (format non date)
alors que 44586 affiché au format date (25/01/2022 , mercredi 25 janvier 2022 , 25/01/22 , 25/1 , 25-janv , etc) sera une date
et si la cellule est au format date MAIS est non-numérique, alors ce ne sera pas une date

cette solution n’est pas parfaite car si on a 25/01/22 dans une cellule au format texte, alors elle ne sera pas considéré comme une date. après, par défaut, excel est au format général et celui-ci interprète une date quand on met un 25/01/22 par ex, donc il faut être vicieux pour mettre un format TEXTE, puis
renseigner un texte qui est une date dedans (pour qu’elle ne soit pas transformée) et pourtant, vouloir que cela soit reconnu comme une date…
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Il y a une tradition, que tu vas sûrement trouver étrange, sur ce forum : dire bonjour quand on entre dans un fil de discussion.

Il y a aussi une autre tradition, commune à tous les forums sur l'internet : ne pas déterrer des fils de discussion qui reposent en paix depuis des mois voire, comme ici, des années.

Sinon, bienvenue à toi sur ce forum. 🖖
 

eiffel38

XLDnaute Nouveau
Bonjour,

Il y a une tradition, que tu vas sûrement trouver étrange, sur ce forum : dire bonjour quand on entre dans un fil de discussion.

Il y a aussi une autre tradition, commune à tous les forums sur l'internet : ne pas déterrer des fils de discussion qui reposent en paix depuis des mois voire, comme ici, des années.

Sinon, bienvenue à toi sur ce forum. 🖖
Bonjour

Corrigé pour le bonjour

Je conçois l'histoire du déterrage de thread, toutefois, quand j'ai recherché une solution, c'est ce thread qui est apparu en premier dans les résultats Google.

Et, compte-tenu que le problème est toujours d'actualité, il m'a semblé intéressant d'apporter un élément supplémentaire, il semble que cela ne soit pas apprécié ici. Décidément, les forums ont toujours les mêmes problèmes avec leurs modérateurs zélés

Je le note et saurai m'abstenir de vouloir aider les autres sur ce site.

Sinon, Bonne continuation et bye bye
[Edit] n'ayant pas trouvé de solution pour supprimer ce compte, pouvez-vous le supprimer, même si cela doit impliquer la suppression de mon post ? merci d'avance[/edit]
 

Discussions similaires

Statistiques des forums

Discussions
312 413
Messages
2 088 212
Membres
103 769
dernier inscrit
Paul Ayang