OVH Cloud OVH Cloud

Cellule contient une date?

5 réponses
Avatar
Grégory
Bonjour,

Merci de prendre qq instants pour le lire!
Je met au point une macro (en VBA) qui me met à jour un planning
synthétisant plusieurs autres documents.
J'ai certaines cellules qui ne doivent normalement contenir que des dates,
hors il arrive malheureusement que celles-ci soient documentées avec du texte.

Avant de dérouler une partie de ma macro, je souhaiterai m'assurer que les
données d'une cellule, s'il y en a, sont bien de type "Date" (qq soit la mise
en forme: d/m/yyyy, d-mmm-yy...)… ou qu'elles ne sont pas de type texte!

Comment faire?

D'avance merci,

Grégory

5 réponses

Avatar
docm
Bonjour Grégory.

La fonction IsDate() te dit s'il s'agit d'une date reconnue par Visual
Basic.

docm


"Grégory" wrote in message
news:
Bonjour,

Merci de prendre qq instants pour le lire!
Je met au point une macro (en VBA) qui me met à jour un planning
synthétisant plusieurs autres documents.
J'ai certaines cellules qui ne doivent normalement contenir que des dates,
hors il arrive malheureusement que celles-ci soient documentées avec du
texte.


Avant de dérouler une partie de ma macro, je souhaiterai m'assurer que les
données d'une cellule, s'il y en a, sont bien de type "Date" (qq soit la
mise

en forme: d/m/yyyy, d-mmm-yy...). ou qu'elles ne sont pas de type texte!

Comment faire?

D'avance merci,

Grégory


Avatar
Daniel
Bonjour.
If IsNumeric([A1]) And [A1] > 0 And [A1] < 100000 Then MsgBox "c'est
peut-être une date"
Cordialement.
Daniel
"Grégory" a écrit dans le message de
news:
Bonjour,

Merci de prendre qq instants pour le lire!
Je met au point une macro (en VBA) qui me met à jour un planning
synthétisant plusieurs autres documents.
J'ai certaines cellules qui ne doivent normalement contenir que des dates,
hors il arrive malheureusement que celles-ci soient documentées avec du
texte.

Avant de dérouler une partie de ma macro, je souhaiterai m'assurer que les
données d'une cellule, s'il y en a, sont bien de type "Date" (qq soit la
mise
en forme: d/m/yyyy, d-mmm-yy...). ou qu'elles ne sont pas de type texte!

Comment faire?

D'avance merci,

Grégory


Avatar
Daniel
Bonjjour.
IsDate est frais, mais il reconnait les dates formatées texte.
Cordialement.
Daniel
"docm" a écrit dans le message de news:

Bonjour Grégory.

La fonction IsDate() te dit s'il s'agit d'une date reconnue par Visual
Basic.

docm


"Grégory" wrote in message
news:
Bonjour,

Merci de prendre qq instants pour le lire!
Je met au point une macro (en VBA) qui me met à jour un planning
synthétisant plusieurs autres documents.
J'ai certaines cellules qui ne doivent normalement contenir que des
dates,
hors il arrive malheureusement que celles-ci soient documentées avec du
texte.


Avant de dérouler une partie de ma macro, je souhaiterai m'assurer que
les
données d'une cellule, s'il y en a, sont bien de type "Date" (qq soit la
mise

en forme: d/m/yyyy, d-mmm-yy...). ou qu'elles ne sont pas de type texte!

Comment faire?

D'avance merci,

Grégory






Avatar
Grégory
Merci bcp!

Greg


Bonjour.
If IsNumeric([A1]) And [A1] > 0 And [A1] < 100000 Then MsgBox "c'est
peut-être une date"
Cordialement.
Daniel
"Grégory" a écrit dans le message de
news:
Bonjour,

Merci de prendre qq instants pour le lire!
Je met au point une macro (en VBA) qui me met à jour un planning
synthétisant plusieurs autres documents.
J'ai certaines cellules qui ne doivent normalement contenir que des dates,
hors il arrive malheureusement que celles-ci soient documentées avec du
texte.

Avant de dérouler une partie de ma macro, je souhaiterai m'assurer que les
données d'une cellule, s'il y en a, sont bien de type "Date" (qq soit la
mise
en forme: d/m/yyyy, d-mmm-yy...). ou qu'elles ne sont pas de type texte!

Comment faire?

D'avance merci,

Grégory







Avatar
Ange Ounis
Pour essayer d'être exhaustif (mais c'est à vérifier) :

''''''''''''''
Function EST_DATE(cell)
'Excel 2000 ou + récent
Dim S, Sep, J, M, A

S = cell.NumberFormat

With Application
Sep = .International(xlDateSeparator)
J = .International(xlDayCode)
M = .International(xlMonthCode)
A = .International(xlYearCode)
End With

EST_DATE = IsNumeric(cell.Value2) And _
S <> "@" And _
(UBound(Split(S, Sep)) > 0 Or _
UBound(Split(S, J)) > 0 Or _
UBound(Split(S, "d")) > 0 Or _
UBound(Split(S, M)) > 0 Or _
UBound(Split(S, "m")) > 0 Or _
UBound(Split(S, A)) > 0 Or _
UBound(Split(S, "y")) > 0)

End Function
'''''''''''''''

----------
Ange Ounis
----------

Bonjour,

Merci de prendre qq instants pour le lire!
Je met au point une macro (en VBA) qui me met à jour un planning
synthétisant plusieurs autres documents.
J'ai certaines cellules qui ne doivent normalement contenir que des dates,
hors il arrive malheureusement que celles-ci soient documentées avec du texte.

Avant de dérouler une partie de ma macro, je souhaiterai m'assurer que les
données d'une cellule, s'il y en a, sont bien de type "Date" (qq soit la mise
en forme: d/m/yyyy, d-mmm-yy...)… ou qu'elles ne sont pas de type texte!

Comment faire?

D'avance merci,

Grégory