Format de dates dans macros et en VBA ?

Le
Chichile
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Ellimac
Le #4938581
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




Corto
Le #4938561
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



JB
Le #4938531
Bonjour,

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

JB

On 11 juin, 16:38, Chichile
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


Chichile
Le #4918081
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
tissot.emmanuel
Le #4915831
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"
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
Pierre
Le #4902781
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






Publicité
Poster une réponse
Anonyme