Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA-problème de date

4 réponses
Avatar
Philippe
Bonjour à tous,
Dans un fichier .CSV que je retraite par macro, les dates apparaissent sous
la forme suivante :
"21.4.2004 00:00:00".
Je fais remplacer " 00:00:00" par "", puis remplacer"." par"/".
Et là, pour mois sur deux chiffres (Nov et Déc), pas de problèmes j'ai bien
une date en résultat.
Par contre, pour les autres mois sur un chiffre, Excel continue à voir le
résultat (21/4/2004), comme une chaîne de caractères.

Si quelqu'un peut me dire comment m'en sortir...

Merci d'avance,

Philippe

4 réponses

Avatar
isabelle
bonjour Philippe,

une solution serait de les remplacer ( 21/4/2004 et 21/12/2004) avec une
formule,

ÚTE(DROITE(D1;4);SI(STXT(D1;TROUVE("/";D1)+2;1)="/";STXT(D1;TROUVE("/";D1)+1;1);STXT(D1;TROUVE("/";D1)+1;2));GAUCHE(D1;2))

isabelle


Bonjour à tous,
Dans un fichier .CSV que je retraite par macro, les dates apparaissent sous
la forme suivante :
"21.4.2004 00:00:00".
Je fais remplacer " 00:00:00" par "", puis remplacer"." par"/".
Et là, pour mois sur deux chiffres (Nov et Déc), pas de problèmes j'ai bien
une date en résultat.
Par contre, pour les autres mois sur un chiffre, Excel continue à voir le
résultat (21/4/2004), comme une chaîne de caractères.

Si quelqu'un peut me dire comment m'en sortir...

Merci d'avance,

Philippe


Avatar
isabelle
correction pour inclure les cas de 1 à 9 jours ( 1/12/2004 )

ÚTE(DROITE(A1;4);SI(STXT(A1;TROUVE("/";A1)+2;1)="/";STXT(A1;TROUVE("/";A1)+1;1);STXT(A1;TROUVE("/";A1)+1;2));SI(TROUVE("/";A1)=2;GAUCHE(A1;1);GAUCHE(A1;2)))

isabelle


bonjour Philippe,

une solution serait de les remplacer ( 21/4/2004 et 21/12/2004) avec une
formule,

ÚTE(DROITE(D1;4);SI(STXT(D1;TROUVE("/";D1)+2;1)="/";STXT(D1;TROUVE("/";D1)+1;1);STXT(D1;TROUVE("/";D1)+1;2));GAUCHE(D1;2))

isabelle


Bonjour à tous,
Dans un fichier .CSV que je retraite par macro, les dates apparaissent sous
la forme suivante :
"21.4.2004 00:00:00".
Je fais remplacer " 00:00:00" par "", puis remplacer"." par"/".
Et là, pour mois sur deux chiffres (Nov et Déc), pas de problèmes j'ai bien
une date en résultat.
Par contre, pour les autres mois sur un chiffre, Excel continue à voir le
résultat (21/4/2004), comme une chaîne de caractères.

Si quelqu'un peut me dire comment m'en sortir...

Merci d'avance,

Philippe




Avatar
Paul V.
Bonjour,

Je ne vois pas trop d'ou vient le problème mais utilise l'instruction
"Datevalue" comme dans l'exemple ci-dessous :
MsgBox DateValue(Replace(a, ".", "/"))
ou "a" est ta date en format texte "21.4.2004 00:00:00".

HTH

Paul V

Philippe wrote:
Bonjour à tous,
Dans un fichier .CSV que je retraite par macro, les dates
apparaissent sous la forme suivante :
"21.4.2004 00:00:00".
Je fais remplacer " 00:00:00" par "", puis remplacer"." par"/".
Et là, pour mois sur deux chiffres (Nov et Déc), pas de problèmes
j'ai bien une date en résultat.
Par contre, pour les autres mois sur un chiffre, Excel continue à
voir le résultat (21/4/2004), comme une chaîne de caractères.

Si quelqu'un peut me dire comment m'en sortir...

Merci d'avance,

Philippe


Avatar
Philippe
Bonjour, et un grand merci !

DateValue marche parfaitement (je ne connaissais pas).

J'ai utilisé cette solution VBA, plutôt que la solution excel d'Isabelle,
que je remercie néanmoins.

Philippe

"Paul V." a écrit dans le message de news:
#
Bonjour,

Je ne vois pas trop d'ou vient le problème mais utilise l'instruction
"Datevalue" comme dans l'exemple ci-dessous :
MsgBox DateValue(Replace(a, ".", "/"))
ou "a" est ta date en format texte "21.4.2004 00:00:00".

HTH

Paul V

Philippe wrote:
Bonjour à tous,
Dans un fichier .CSV que je retraite par macro, les dates
apparaissent sous la forme suivante :
"21.4.2004 00:00:00".
Je fais remplacer " 00:00:00" par "", puis remplacer"." par"/".
Et là, pour mois sur deux chiffres (Nov et Déc), pas de problèmes
j'ai bien une date en résultat.
Par contre, pour les autres mois sur un chiffre, Excel continue à
voir le résultat (21/4/2004), comme une chaîne de caractères.

Si quelqu'un peut me dire comment m'en sortir...

Merci d'avance,

Philippe