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

Format de dates dans macros et en VBA ?

6 réponses
Avatar
Chichile
Bonjour,

Je travaille sur Windows XP, version xls 2003.
J'importe quotidiennenment dans Excel des donn=E9es qui contiennent des
dates sous un format de type 08/JAN/2006, 22/APR/2007, 05/FEB/2006...
Pour certains mois, Excel reconna=EEt des dates et me les transforme
sous un format =AB2-janv-2007, mais pour d'autres pas... Dans tous les
cas, le format des cellules reste en =AB G=E9n=E9ral =BB.

Or, je veux obtenir des dates sous format date. Quand je fais un
replace dans xls de FEB par 02, etc, tout est OK.

Par contre quand je fais une macro ou que je tape moi-m=EAme en VBA :
.Columns("x:y").Replace What:=3D"FEB", Replacement:=3D"02"
Excel m'=E9change le mois et le jour ; 09/FEB/2007 devient 02/09/2007...
F=E2cheux, n'est-ce pas ?

J'ai beau changer le format de mes cellules, je n'arrive =E0 rien. L'un
d'entre vous pourrait-il m'aider ? Je ne sais plus quoi essayer...

Un grand merci d'avance !

C=E9cile

6 réponses

Avatar
Ellimac
Bonjour,

Sub Macro1()
For Each c In Range("b2:b5000")
If c = "" Then Exit Sub
n = Replace(c, "FEB", 2)
c.Value = CDate(n)
Next
End Sub

Camille

"Chichile" wrote:

Bonjour,

Je travaille sur Windows XP, version xls 2003.
J'importe quotidiennenment dans Excel des données qui contiennent des
dates sous un format de type 08/JAN/2006, 22/APR/2007, 05/FEB/2006...
Pour certains mois, Excel reconnaît des dates et me les transforme
sous un format «2-janv-2007, mais pour d'autres pas... Dans tous les
cas, le format des cellules reste en « Général ».

Or, je veux obtenir des dates sous format date. Quand je fais un
replace dans xls de FEB par 02, etc, tout est OK.

Par contre quand je fais une macro ou que je tape moi-même en VBA :
..Columns("x:y").Replace What:="FEB", Replacement:="02"
Excel m'échange le mois et le jour ; 09/FEB/2007 devient 02/09/2007...
Fâcheux, n'est-ce pas ?

J'ai beau changer le format de mes cellules, je n'arrive à rien. L'un
d'entre vous pourrait-il m'aider ? Je ne sais plus quoi essayer...

Un grand merci d'avance !

Cécile




Avatar
Corto
Bonjour Chichile,
Une solution "bidouille" : tu change les paramètres du système sur
Anglais et Excel reconnaitra les dates.

Corto


Bonjour,

Je travaille sur Windows XP, version xls 2003.
J'importe quotidiennenment dans Excel des données qui contiennent des
dates sous un format de type 08/JAN/2006, 22/APR/2007, 05/FEB/2006...
Pour certains mois, Excel reconnaît des dates et me les transforme
sous un format «2-janv-2007, mais pour d'autres pas... Dans tous les
cas, le format des cellules reste en « Général ».

Or, je veux obtenir des dates sous format date. Quand je fais un
replace dans xls de FEB par 02, etc, tout est OK.

Par contre quand je fais une macro ou que je tape moi-même en VBA :
.Columns("x:y").Replace What:="FEB", Replacement:="02"
Excel m'échange le mois et le jour ; 09/FEB/2007 devient 02/09/2007...
Fâcheux, n'est-ce pas ?

J'ai beau changer le format de mes cellules, je n'arrive à rien. L'un
d'entre vous pourrait-il m'aider ? Je ne sais plus quoi essayer...

Un grand merci d'avance !

Cécile



Avatar
JB
Bonjour,

For Each c In [A1:A5]
c.Value = CDate(Replace(c.Text, "FEB", "2"))
Next c

JB

On 11 juin, 16:38, Chichile wrote:
Bonjour,

Je travaille sur Windows XP, version xls 2003.
J'importe quotidiennenment dans Excel des données qui contiennent des
dates sous un format de type 08/JAN/2006, 22/APR/2007, 05/FEB/2006...
Pour certains mois, Excel reconnaît des dates et me les transforme
sous un format «2-janv-2007, mais pour d'autres pas... Dans tous les
cas, le format des cellules reste en « Général ».

Or, je veux obtenir des dates sous format date. Quand je fais un
replace dans xls de FEB par 02, etc, tout est OK.

Par contre quand je fais une macro ou que je tape moi-même en VBA :
.Columns("x:y").Replace What:="FEB", Replacement:="02"
Excel m'échange le mois et le jour ; 09/FEB/2007 devient 02/09/2007...
Fâcheux, n'est-ce pas ?

J'ai beau changer le format de mes cellules, je n'arrive à rien. L'un
d'entre vous pourrait-il m'aider ? Je ne sais plus quoi essayer...

Un grand merci d'avance !

Cécile


Avatar
Chichile
Bonjour,

Merci pour vos suggestions, mais malheureusement ça ne tourne pas sur
mes données.Ces codes me créent des "type mismatch" ...

Si vous avez d'autres suggestions elles sont les bienvenues, sinon je
vais continuer à me gratter la tête avec perplexité devant mon écra n.

Bonne journée !

Cécile
Avatar
tissot.emmanuel
Bonsoir,

Pour éviter une calvitie précoce je te suggère d'importer tes données au
format texte avant de les retraiter pour les transformer en date.

En supposant que tes dates (au format texte) sont dans la colonne A, dans la
colonne B tu inscris cette formule:

ÚTE(DROITE(A1;4);EQUIV(DROITE(GAUCHE(A1;6);3);{"JAN";"FEB";"MAR";"APR";"MAY";"JUN";"JUL";"AUG";"SEP";"OCT";"NOV";"DEC"};0);GAUCHE(A1;2))

Puis collage special en valeur, formatage, suppression de la colonne
initiale, toutes ces taches peuvent etre prise en charge par une macro.

Cordialement,

Manu/

"Chichile" a écrit dans le message de news:

Bonjour,

Merci pour vos suggestions, mais malheureusement ça ne tourne pas sur
mes données.Ces codes me créent des "type mismatch" ...

Si vous avez d'autres suggestions elles sont les bienvenues, sinon je
vais continuer à me gratter la tête avec perplexité devant mon écran.

Bonne journée !

Cécile
Avatar
Pierre
Bonjour

J'ai le même problème que toi et je viens de trouver la solution, il faut
rajouter le code suivant après ton code replace:

Selection.NumberFormat = "m/d/yyyy;@"

C'est grace à Corto que j'ai trouvé, alors rendons à César .....

Pierre


Bonjour,

Merci pour vos suggestions, mais malheureusement ça ne tourne pas sur
mes données.Ces codes me créent des "type mismatch" ...

Si vous avez d'autres suggestions elles sont les bienvenues, sinon je
vais continuer à me gratter la tête avec perplexité devant mon écran.

Bonne journée !

Cécile