Salut.
J'espère que je poste sur le bon forum.
Voila mon problème.
J'ai un fichier au format csv, avec des valeurs numériques et des
valeurs de type date.
voici un exemple:
-----BOF----
10;01/02/2002
15;15/02/2002
50;11/01/2002
-----EOF----
J'ouvre ce fichier par OLE à partir de DELPHI.
Le problème est que Excel interprète les dates au format américain:
mm/dd/yyyy
C'est à dire que cette date : "15/02/2002" sera correctement interprétée
et que ces dates : "01/02/2002" et "11/01/2002" seront mal interprétées
le jour et le mois seront inversés dans Excel.
Je pense que je peux passer des paramètres à l'ouverture du classeur(que
je fais dans delphi). Voici la ligne de commande que j'utilise dans Delphi:
workbooks.open(nom_fichier,emptyparam,emptyparam,4);
Je crois que je dois modifier les emptyparam, qui correspondent à "JE
SAIS PAS QUOI". Je sais que le dernier paramètre correspond au
séparateur de champ, dans mon cas un ";"
Savez vous par quoi je dois remplacer les emptyparam pour que excel
interprète bien les dates? Je pense que sous le VB d'Excel ca doit
ressembler.
MERCI
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Frédéric Sigonneau
Bonsoir,
La méthode Open gagne des paramètres au fil des versions. Avec Excel 2002, j'en suis à 15... Le séparateur de champ est chez moi le 9ème paramètre et il existe un 14ème qui devrait t'aider si tu peux l'utiliser : Local. S'il vaut True, les paramètres régionaux du système où le code s'exécute sont utilisés (et tes dates seront restituées correctement). Si tu le peux, donc, (version d'Excel pilotée par OLE), essaye soit une syntaxe avec paramètres nommés (m'étonnerait que celle-là soit possible) :
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Salut. J'espère que je poste sur le bon forum. Voila mon problème. J'ai un fichier au format csv, avec des valeurs numériques et des valeurs de type date. voici un exemple: -----BOF---- 10;01/02/2002 15;15/02/2002 50;11/01/2002 -----EOF---- J'ouvre ce fichier par OLE à partir de DELPHI. Le problème est que Excel interprète les dates au format américain: mm/dd/yyyy C'est à dire que cette date : "15/02/2002" sera correctement interprétée et que ces dates : "01/02/2002" et "11/01/2002" seront mal interprétées le jour et le mois seront inversés dans Excel.
Je pense que je peux passer des paramètres à l'ouverture du classeur(que je fais dans delphi). Voici la ligne de commande que j'utilise dans Delphi: workbooks.open(nom_fichier,emptyparam,emptyparam,4); Je crois que je dois modifier les emptyparam, qui correspondent à "JE SAIS PAS QUOI". Je sais que le dernier paramètre correspond au séparateur de champ, dans mon cas un ";" Savez vous par quoi je dois remplacer les emptyparam pour que excel interprète bien les dates? Je pense que sous le VB d'Excel ca doit ressembler. MERCI
Bonsoir,
La méthode Open gagne des paramètres au fil des versions. Avec Excel 2002, j'en
suis à 15...
Le séparateur de champ est chez moi le 9ème paramètre et il existe un 14ème qui
devrait t'aider si tu peux l'utiliser : Local. S'il vaut True, les paramètres
régionaux du système où le code s'exécute sont utilisés (et tes dates seront
restituées correctement).
Si tu le peux, donc, (version d'Excel pilotée par OLE), essaye soit une syntaxe
avec paramètres nommés (m'étonnerait que celle-là soit possible) :
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Salut.
J'espère que je poste sur le bon forum.
Voila mon problème.
J'ai un fichier au format csv, avec des valeurs numériques et des
valeurs de type date.
voici un exemple:
-----BOF----
10;01/02/2002
15;15/02/2002
50;11/01/2002
-----EOF----
J'ouvre ce fichier par OLE à partir de DELPHI.
Le problème est que Excel interprète les dates au format américain:
mm/dd/yyyy
C'est à dire que cette date : "15/02/2002" sera correctement interprétée
et que ces dates : "01/02/2002" et "11/01/2002" seront mal interprétées
le jour et le mois seront inversés dans Excel.
Je pense que je peux passer des paramètres à l'ouverture du classeur(que
je fais dans delphi). Voici la ligne de commande que j'utilise dans Delphi:
workbooks.open(nom_fichier,emptyparam,emptyparam,4);
Je crois que je dois modifier les emptyparam, qui correspondent à "JE
SAIS PAS QUOI". Je sais que le dernier paramètre correspond au
séparateur de champ, dans mon cas un ";"
Savez vous par quoi je dois remplacer les emptyparam pour que excel
interprète bien les dates? Je pense que sous le VB d'Excel ca doit
ressembler.
MERCI
La méthode Open gagne des paramètres au fil des versions. Avec Excel 2002, j'en suis à 15... Le séparateur de champ est chez moi le 9ème paramètre et il existe un 14ème qui devrait t'aider si tu peux l'utiliser : Local. S'il vaut True, les paramètres régionaux du système où le code s'exécute sont utilisés (et tes dates seront restituées correctement). Si tu le peux, donc, (version d'Excel pilotée par OLE), essaye soit une syntaxe avec paramètres nommés (m'étonnerait que celle-là soit possible) :
FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Salut. J'espère que je poste sur le bon forum. Voila mon problème. J'ai un fichier au format csv, avec des valeurs numériques et des valeurs de type date. voici un exemple: -----BOF---- 10;01/02/2002 15;15/02/2002 50;11/01/2002 -----EOF---- J'ouvre ce fichier par OLE à partir de DELPHI. Le problème est que Excel interprète les dates au format américain: mm/dd/yyyy C'est à dire que cette date : "15/02/2002" sera correctement interprétée et que ces dates : "01/02/2002" et "11/01/2002" seront mal interprétées le jour et le mois seront inversés dans Excel.
Je pense que je peux passer des paramètres à l'ouverture du classeur(que je fais dans delphi). Voici la ligne de commande que j'utilise dans Delphi: workbooks.open(nom_fichier,emptyparam,emptyparam,4); Je crois que je dois modifier les emptyparam, qui correspondent à "JE SAIS PAS QUOI". Je sais que le dernier paramètre correspond au séparateur de champ, dans mon cas un ";" Savez vous par quoi je dois remplacer les emptyparam pour que excel interprète bien les dates? Je pense que sous le VB d'Excel ca doit ressembler. MERCI
Valerie Labonne
Merci beaucoup pour ta réponse. Je crois que Delphi5 (que j'utilise) utilise la version 97, car je n'ai que 4 paramètres: workbooks.open(nom_fichier,emptyparam,emptyparam,4); Je tente dés à présent de remplacer un "emptyparam" par TRUE. Je vous tiens au courant (si ça vous intéresse!)
Frédéric Sigonneau a écrit:
Bonsoir,
La méthode Open gagne des paramètres au fil des versions. Avec Excel 2002, j'en suis à 15... Le séparateur de champ est chez moi le 9ème paramètre et il existe un 14ème qui devrait t'aider si tu peux l'utiliser : Local. S'il vaut True, les paramètres régionaux du système où le code s'exécute sont utilisés (et tes dates seront restituées correctement). Si tu le peux, donc, (version d'Excel pilotée par OLE), essaye soit une syntaxe avec paramètres nommés (m'étonnerait que celle-là soit possible) :
Merci beaucoup pour ta réponse. Je crois que Delphi5 (que j'utilise)
utilise la version 97, car je n'ai que 4 paramètres:
workbooks.open(nom_fichier,emptyparam,emptyparam,4);
Je tente dés à présent de remplacer un "emptyparam" par TRUE.
Je vous tiens au courant (si ça vous intéresse!)
Frédéric Sigonneau a écrit:
Bonsoir,
La méthode Open gagne des paramètres au fil des versions. Avec Excel 2002, j'en
suis à 15...
Le séparateur de champ est chez moi le 9ème paramètre et il existe un 14ème qui
devrait t'aider si tu peux l'utiliser : Local. S'il vaut True, les paramètres
régionaux du système où le code s'exécute sont utilisés (et tes dates seront
restituées correctement).
Si tu le peux, donc, (version d'Excel pilotée par OLE), essaye soit une syntaxe
avec paramètres nommés (m'étonnerait que celle-là soit possible) :
Merci beaucoup pour ta réponse. Je crois que Delphi5 (que j'utilise) utilise la version 97, car je n'ai que 4 paramètres: workbooks.open(nom_fichier,emptyparam,emptyparam,4); Je tente dés à présent de remplacer un "emptyparam" par TRUE. Je vous tiens au courant (si ça vous intéresse!)
Frédéric Sigonneau a écrit:
Bonsoir,
La méthode Open gagne des paramètres au fil des versions. Avec Excel 2002, j'en suis à 15... Le séparateur de champ est chez moi le 9ème paramètre et il existe un 14ème qui devrait t'aider si tu peux l'utiliser : Local. S'il vaut True, les paramètres régionaux du système où le code s'exécute sont utilisés (et tes dates seront restituées correctement). Si tu le peux, donc, (version d'Excel pilotée par OLE), essaye soit une syntaxe avec paramètres nommés (m'étonnerait que celle-là soit possible) :
Ça m'intéresse mais ça m'étonnerait que ça marche, le paramètre Local n'étant disponible qu'à partir d'Excel 2002 :( A te relire, je ne suis pas certain que c'est bien Excel que tu cherches à piloter... Ne serait-ce pas plutôt un composant comme TAdvExcel ou qqchose de ce genre ? Si c'est le cas, l'aide d'Excel ne va pas servir à grand'chose et tu auras plus d'aide dans un forum Delphi. Sinon, pour forcer l'ouverture d'un fichier CSV avec le format de dates de ton choix, tu peux essayer, autre m"thode, ce genre de syntaxe (code VBA) :
'================= 'utiliser le paramètre FieldInfo pour forcer le format de dates 'd'une colonne (la colonne ne doit contenir que des dates..) Sub OuvrirTxt(NomFichier$) Dim Wbk As Workbook Set Wbk = Workbooks.Open(NomFichier) Wbk.Sheets(1).Columns(1).TextToColumns _ Range("A1"), , , False, , True, FieldInfo:=Array(2, xlDMYFormat) '(ici, la colonne de dates est la colonne 2) End Sub '================= FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Merci beaucoup pour ta réponse. Je crois que Delphi5 (que j'utilise) utilise la version 97, car je n'ai que 4 paramètres: workbooks.open(nom_fichier,emptyparam,emptyparam,4); Je tente dés à présent de remplacer un "emptyparam" par TRUE. Je vous tiens au courant (si ça vous intéresse!)
Frédéric Sigonneau a écrit:
Bonsoir,
La méthode Open gagne des paramètres au fil des versions. Avec Excel 2002, j'en suis à 15... Le séparateur de champ est chez moi le 9ème paramètre et il existe un 14ème qui devrait t'aider si tu peux l'utiliser : Local. S'il vaut True, les paramètres régionaux du système où le code s'exécute sont utilisés (et tes dates seront restituées correctement). Si tu le peux, donc, (version d'Excel pilotée par OLE), essaye soit une syntaxe avec paramètres nommés (m'étonnerait que celle-là soit possible) :
Ça m'intéresse mais ça m'étonnerait que ça marche, le paramètre Local n'étant
disponible qu'à partir d'Excel 2002 :(
A te relire, je ne suis pas certain que c'est bien Excel que tu cherches à
piloter... Ne serait-ce pas plutôt un composant comme TAdvExcel ou qqchose de ce
genre ? Si c'est le cas, l'aide d'Excel ne va pas servir à grand'chose et tu
auras plus d'aide dans un forum Delphi.
Sinon, pour forcer l'ouverture d'un fichier CSV avec le format de dates de ton
choix, tu peux essayer, autre m"thode, ce genre de syntaxe (code VBA) :
'================= 'utiliser le paramètre FieldInfo pour forcer le format de dates
'd'une colonne (la colonne ne doit contenir que des dates..)
Sub OuvrirTxt(NomFichier$)
Dim Wbk As Workbook
Set Wbk = Workbooks.Open(NomFichier)
Wbk.Sheets(1).Columns(1).TextToColumns _
Range("A1"), , , False, , True, FieldInfo:=Array(2, xlDMYFormat)
'(ici, la colonne de dates est la colonne 2)
End Sub
'=================
FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !
Merci beaucoup pour ta réponse. Je crois que Delphi5 (que j'utilise)
utilise la version 97, car je n'ai que 4 paramètres:
workbooks.open(nom_fichier,emptyparam,emptyparam,4);
Je tente dés à présent de remplacer un "emptyparam" par TRUE.
Je vous tiens au courant (si ça vous intéresse!)
Frédéric Sigonneau a écrit:
Bonsoir,
La méthode Open gagne des paramètres au fil des versions. Avec Excel 2002, j'en
suis à 15...
Le séparateur de champ est chez moi le 9ème paramètre et il existe un 14ème qui
devrait t'aider si tu peux l'utiliser : Local. S'il vaut True, les paramètres
régionaux du système où le code s'exécute sont utilisés (et tes dates seront
restituées correctement).
Si tu le peux, donc, (version d'Excel pilotée par OLE), essaye soit une syntaxe
avec paramètres nommés (m'étonnerait que celle-là soit possible) :
Ça m'intéresse mais ça m'étonnerait que ça marche, le paramètre Local n'étant disponible qu'à partir d'Excel 2002 :( A te relire, je ne suis pas certain que c'est bien Excel que tu cherches à piloter... Ne serait-ce pas plutôt un composant comme TAdvExcel ou qqchose de ce genre ? Si c'est le cas, l'aide d'Excel ne va pas servir à grand'chose et tu auras plus d'aide dans un forum Delphi. Sinon, pour forcer l'ouverture d'un fichier CSV avec le format de dates de ton choix, tu peux essayer, autre m"thode, ce genre de syntaxe (code VBA) :
'================= 'utiliser le paramètre FieldInfo pour forcer le format de dates 'd'une colonne (la colonne ne doit contenir que des dates..) Sub OuvrirTxt(NomFichier$) Dim Wbk As Workbook Set Wbk = Workbooks.Open(NomFichier) Wbk.Sheets(1).Columns(1).TextToColumns _ Range("A1"), , , False, , True, FieldInfo:=Array(2, xlDMYFormat) '(ici, la colonne de dates est la colonne 2) End Sub '================= FS -- Frédéric Sigonneau [MVP Excel - né un sans-culottide] Gestions de temps, VBA pour Excel : http://perso.wanadoo.fr/frederic.sigonneau Si votre question sur Excel est urgente, évitez ma bal !
Merci beaucoup pour ta réponse. Je crois que Delphi5 (que j'utilise) utilise la version 97, car je n'ai que 4 paramètres: workbooks.open(nom_fichier,emptyparam,emptyparam,4); Je tente dés à présent de remplacer un "emptyparam" par TRUE. Je vous tiens au courant (si ça vous intéresse!)
Frédéric Sigonneau a écrit:
Bonsoir,
La méthode Open gagne des paramètres au fil des versions. Avec Excel 2002, j'en suis à 15... Le séparateur de champ est chez moi le 9ème paramètre et il existe un 14ème qui devrait t'aider si tu peux l'utiliser : Local. S'il vaut True, les paramètres régionaux du système où le code s'exécute sont utilisés (et tes dates seront restituées correctement). Si tu le peux, donc, (version d'Excel pilotée par OLE), essaye soit une syntaxe avec paramètres nommés (m'étonnerait que celle-là soit possible) :
Merci pour tes réponses. C'est bien Excel que je cherche à piloter. Mon code est du genre: var MonExcel:Variant; begin MonExcel:=TOleApplication.Create('Excel.Application'); ......... MonExcel.Worksheet.Add( etc... end; En fait l'info qui m'intéresse est celle-ci:
le paramètre Local n'étant disponible qu'à partir d'Excel 2002 Car mon programme Delphi doit piloter des Excel 97 donc je vais me
rabattre sur le forum delphi sur l'automation puisque visiblement, je ne peux pas passer le paramètre "local" sur un XL97. Mais je doute que je puisse ariver à quelque chose... Si j'ai une solution, je la posterai ici pour toi. MERCI!
Frédéric Sigonneau a écrit:
Bonsoir,
Ça m'intéresse mais ça m'étonnerait que ça marche, le paramètre Local n'étant disponible qu'à partir d'Excel 2002 :( A te relire, je ne suis pas certain que c'est bien Excel que tu cherches à piloter... Ne serait-ce pas plutôt un composant comme TAdvExcel ou qqchose de ce genre ? Si c'est le cas, l'aide d'Excel ne va pas servir à grand'chose et tu auras plus d'aide dans un forum Delphi. Sinon, pour forcer l'ouverture d'un fichier CSV avec le format de dates de ton choix, tu peux essayer, autre m"thode, ce genre de syntaxe (code VBA) :
'================= > 'utiliser le paramètre FieldInfo pour forcer le format de dates 'd'une colonne (la colonne ne doit contenir que des dates..) Sub OuvrirTxt(NomFichier$) Dim Wbk As Workbook Set Wbk = Workbooks.Open(NomFichier) Wbk.Sheets(1).Columns(1).TextToColumns _ Range("A1"), , , False, , True, FieldInfo:=Array(2, xlDMYFormat) '(ici, la colonne de dates est la colonne 2) End Sub '================= > FS
Merci pour tes réponses.
C'est bien Excel que je cherche à piloter. Mon code est du genre:
var
MonExcel:Variant;
begin
MonExcel:=TOleApplication.Create('Excel.Application');
.........
MonExcel.Worksheet.Add(
etc...
end;
En fait l'info qui m'intéresse est celle-ci:
le paramètre Local n'étant
disponible qu'à partir d'Excel 2002
Car mon programme Delphi doit piloter des Excel 97 donc je vais me
rabattre sur le forum delphi sur l'automation puisque visiblement, je ne
peux pas passer le paramètre "local" sur un XL97. Mais je doute que je
puisse ariver à quelque chose... Si j'ai une solution, je la posterai
ici pour toi.
MERCI!
Frédéric Sigonneau a écrit:
Bonsoir,
Ça m'intéresse mais ça m'étonnerait que ça marche, le paramètre Local n'étant
disponible qu'à partir d'Excel 2002 :(
A te relire, je ne suis pas certain que c'est bien Excel que tu cherches à
piloter... Ne serait-ce pas plutôt un composant comme TAdvExcel ou qqchose de ce
genre ? Si c'est le cas, l'aide d'Excel ne va pas servir à grand'chose et tu
auras plus d'aide dans un forum Delphi.
Sinon, pour forcer l'ouverture d'un fichier CSV avec le format de dates de ton
choix, tu peux essayer, autre m"thode, ce genre de syntaxe (code VBA) :
'================= > 'utiliser le paramètre FieldInfo pour forcer le format de dates
'd'une colonne (la colonne ne doit contenir que des dates..)
Sub OuvrirTxt(NomFichier$)
Dim Wbk As Workbook
Set Wbk = Workbooks.Open(NomFichier)
Wbk.Sheets(1).Columns(1).TextToColumns _
Range("A1"), , , False, , True, FieldInfo:=Array(2, xlDMYFormat)
'(ici, la colonne de dates est la colonne 2)
End Sub
'================= >
FS
Merci pour tes réponses. C'est bien Excel que je cherche à piloter. Mon code est du genre: var MonExcel:Variant; begin MonExcel:=TOleApplication.Create('Excel.Application'); ......... MonExcel.Worksheet.Add( etc... end; En fait l'info qui m'intéresse est celle-ci:
le paramètre Local n'étant disponible qu'à partir d'Excel 2002 Car mon programme Delphi doit piloter des Excel 97 donc je vais me
rabattre sur le forum delphi sur l'automation puisque visiblement, je ne peux pas passer le paramètre "local" sur un XL97. Mais je doute que je puisse ariver à quelque chose... Si j'ai une solution, je la posterai ici pour toi. MERCI!
Frédéric Sigonneau a écrit:
Bonsoir,
Ça m'intéresse mais ça m'étonnerait que ça marche, le paramètre Local n'étant disponible qu'à partir d'Excel 2002 :( A te relire, je ne suis pas certain que c'est bien Excel que tu cherches à piloter... Ne serait-ce pas plutôt un composant comme TAdvExcel ou qqchose de ce genre ? Si c'est le cas, l'aide d'Excel ne va pas servir à grand'chose et tu auras plus d'aide dans un forum Delphi. Sinon, pour forcer l'ouverture d'un fichier CSV avec le format de dates de ton choix, tu peux essayer, autre m"thode, ce genre de syntaxe (code VBA) :
'================= > 'utiliser le paramètre FieldInfo pour forcer le format de dates 'd'une colonne (la colonne ne doit contenir que des dates..) Sub OuvrirTxt(NomFichier$) Dim Wbk As Workbook Set Wbk = Workbooks.Open(NomFichier) Wbk.Sheets(1).Columns(1).TextToColumns _ Range("A1"), , , False, , True, FieldInfo:=Array(2, xlDMYFormat) '(ici, la colonne de dates est la colonne 2) End Sub '================= > FS