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

Format Données / Convertir

2 réponses
Avatar
Gloops
Bonjour tout le monde,

Je pilote depuis Access un import dans Excel d'un fichier texte.

Quand j'ai enregistr=E9 sous Excel la conversion, avec format JMA sur les=
=20
colonnes qui donnent des dates, le r=E9sultat est impeccable.

Sous Access, sur la ligne qui commence par
xlSht.Range(xlSht.Cells(1, 1), xlSht.Cells(1,=20
1).End(xlDown)).TextToColumns Destination:=3DxlSht.Range("A1"),=20
DataType:=3DxlDelimited, _

je reporte la suite de l'argument Destination obtenu dans=20
l'enregistrement de macro sous Excel, et l=E0 les ennuis commencent. Pour=
=20
les colonnes devant contenir du texte pour ne pas s'asseoir sur les=20
z=E9ros en t=EAte de nombres, =E7a va, mais c'est surtout les dates qui p=
osent=20
probl=E8me.

Passons sur la colonne qui se retrouve affubl=E9e d'un Array(n=B0 col., 1=
) =E0=20
la place de Array(n=B0 col, 4), si je pars du principe que xlDMYFormat=3D=
4,=20
mais m=EAme si je corrige =E0 la main, j'ai un r=E9sultat bizarre :
"06/09/2010 00:00:00" donne une valeur align=E9e =E0 droite, qui dans un=
e=20
table li=E9e sous Access donne l'affichage "!NOMBRE"
"15/10/2010 00:00:00" donne une valeur align=E9e =E0 gauche, qui dans une=
=20
table li=E9e sous Access donne bien la bonne date.

Etant pr=E9cis=E9 toutefois que si je regarde les propri=E9t=E9s de la ta=
ble=20
li=E9e, je vois qu'aucune colonne n'est d=E9clar=E9e de type date, les=20
colonnes correspondantes sont d=E9clar=E9es de type texte.

Plus g=E9n=E9ralement semble-t-il les dates qui commencent par un z=E9ro =
ne=20
sont pas reconnues comme telles.

Je crains que ma question soit simple :
Quezaco ?

Comme format de fichier, j'ai essay=E9 xlExcel7, xlExcel9795 et=20
xlExcel4Workbook.
Le d=E9veloppement se fait sous Office 2003, Windows XP Pro.

2 réponses

Avatar
db
Le 18/10/2011 21:44, Gloops a écrit :

Bonjour tout le monde,

Je pilote depuis Access un import dans Excel d'un fichier texte.


Passons sur la colonne qui se retrouve affublée d'un Array(n° col., 1) à
la place de Array(n° col, 4), si je pars du principe que xlDMYFormat=4,
mais même si je corrige à la main, j'ai un résultat bizarre :
"06/09/2010 00:00:00" donne une valeur alignée à droite, qui dans une
table liée sous Access donne l'affichage "!NOMBRE"
"15/10/2010 00:00:00" donne une valeur alignée à gauche, qui dans une
table liée sous Access donne bien la bonne date.

Etant précisé toutefois que si je regarde les propriétés de la table
liée, je vois qu'aucune colonne n'est déclarée de type date, les
colonnes correspondantes sont déclarées de type texte.

Plus généralement semble-t-il les dates qui commencent par un zéro ne
sont pas reconnues comme telles.




Bonsoir,

Vu de loin, j'aurais tendance à interpréter le problème dans l'autre
sens : dans la mesure où, par défaut, les dates sont alignées à droite
dans Excel, c'est la date "06/09/2010" qui est correctement interprétée
comme date par Excel, puisqu'alignée à droite.
Par contre "15/10/2010" n'est pas interprétée comme une date,
probablement parce qu'Excel attend une date au format "MM/JJ/AAA", et
que 15 n'est pas un numéro de mois valide. Il faudrait voir ce que donne
"12/10/2010" et voir si cette date est alignée à droite (correcte) ou à
gauche (incorrecte).

Les quelques test récents d'import que j'ai eu à faire m'ont montré qu'à
partir d'excel 2007, les imports se faisaient correctement avec le
format français, alors que les versions précédentes attendaient un
format américain.

Mais, encore une fois, j'émets cet avis avec une grande prudence,
n'ayant pas les éléments nécessaires sous les yeux.

db
Avatar
Gloops
db a écrit, le 18/10/2011 22:12 :
Le 18/10/2011 21:44, Gloops a écrit :

Bonjour tout le monde,

Je pilote depuis Access un import dans Excel d'un fichier texte.


Passons sur la colonne qui se retrouve affublée d'un Array(n° col. , 1) à
la place de Array(n° col, 4), si je pars du principe que xlDMYFormat =4,
mais même si je corrige à la main, j'ai un résultat bizarre :
"06/09/2010 00:00:00" donne une valeur alignée à droite, qui dans une
table liée sous Access donne l'affichage "!NOMBRE"
"15/10/2010 00:00:00" donne une valeur alignée à gauche, qui dans une
table liée sous Access donne bien la bonne date.

Etant précisé toutefois que si je regarde les propriétés de la table
liée, je vois qu'aucune colonne n'est déclarée de type date, les
colonnes correspondantes sont déclarées de type texte.

Plus généralement semble-t-il les dates qui commencent par un zé ro ne
sont pas reconnues comme telles.




Bonsoir,

Vu de loin, j'aurais tendance à interpréter le problème dans l'au tre
sens : dans la mesure où, par défaut, les dates sont alignées à droite
dans Excel, c'est la date "06/09/2010" qui est correctement interprét ée
comme date par Excel, puisqu'alignée à droite.
Par contre "15/10/2010" n'est pas interprétée comme une date,
probablement parce qu'Excel attend une date au format "MM/JJ/AAA", et
que 15 n'est pas un numéro de mois valide. Il faudrait voir ce que do nne
"12/10/2010" et voir si cette date est alignée à droite (correcte) ou à
gauche (incorrecte).

Les quelques test récents d'import que j'ai eu à faire m'ont montré qu'à
partir d'excel 2007, les imports se faisaient correctement avec le
format français, alors que les versions précédentes attendaient u n
format américain.

Mais, encore une fois, j'émets cet avis avec une grande prudence,
n'ayant pas les éléments nécessaires sous les yeux.

db



OK je vais tester en tenant compte de ça ...
Il faudra que je fasse une copie d'écran pour être plus sûr, ça c ommence
un peu à s'estomper mais certains points de cet avis me surprennent.

Aujourd'hui, on a fait une mise à jour, si je ne m'abuse avec Office
2007 au lieu de 2003. Là on avait !NOMBRE, on a maintenant une case
vide, mais ça concerne les mêmes cases.

Bon, à suivre alors ... Probablement pas pour trouver la solution
demain, mais pour essayer d'en savoir plus.