problème de conversion de date en fichier texte prn
6 réponses
Fabrice
Bonjour à tous,
Sous Excel 2000, j'essaie via le code vba d'enregistrer une feuille de
calcul au format texte prn (Fichier / Enregistrer sous / Type de données
Texte séparateur espace *.prn). Ca marche bien si je le fais manuellement,
mais si je l'exécute cette conversion via du code vba, la colonne contenant
une date affiche des #######.Je crois avoir cerné le problème :
Si j'enregistre manuellement avec Fichier / Enregistrer sous, Excel me garde
le format date jj/mm/aa, mais si je le fais via le code vba suivant :
il me convertit la date au format jj/mm/aaaa (même qu'à l'écran elle est
affichée au format jj.mm.aa) et il n'a plus de place pour l'afficher, alors
il m'affiche des dièses dans mon fichier texte prn.
Est-ce que quelqu'un à une idée pour lui forcer à prendre le format
jj/mm/aa, lorsque j'enregistre le classeur au format texte prn via le code
vba.
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
Laurent M
Salut Fabrice,
La méthode SaveAs comporte un paramètre facultatif fort à propos qui résoud des problèmes comme le tien. Il s'agit du paramèter 'Local', dont je te retranscris la définition, tiré de l'aide d'Excel 2002:
Local: Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).
Un seul doute, je ne me souviens pas si ce nouveau paramètre est apparu sous Excel 2000 ou XL 2002. Tu nous diras.
Laurent M.
Salut Fabrice,
La méthode SaveAs comporte un paramètre facultatif fort à propos qui
résoud des problèmes comme le tien. Il s'agit du paramèter 'Local', dont
je te retranscris la définition, tiré de l'aide d'Excel 2002:
Local: Argument de type Variant facultatif. La valeur True enregistre
les fichiers en fonction de la langue de Microsoft Excel (y compris les
paramètres du Panneau de configuration). La valeur False (valeur par
défaut) enregistre les fichiers en fonction de la langue de Visual Basic
pour Applications (VBA) (qui est généralement l'anglais des États-Unis,
sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet
VBA XL5/95 de niveau international).
Un seul doute, je ne me souviens pas si ce nouveau paramètre est apparu
sous Excel 2000 ou XL 2002. Tu nous diras.
La méthode SaveAs comporte un paramètre facultatif fort à propos qui résoud des problèmes comme le tien. Il s'agit du paramèter 'Local', dont je te retranscris la définition, tiré de l'aide d'Excel 2002:
Local: Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).
Un seul doute, je ne me souviens pas si ce nouveau paramètre est apparu sous Excel 2000 ou XL 2002. Tu nous diras.
Laurent M.
Fabrice
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Merci encore Fabrice
"Laurent M" a écrit dans le message de news:
Salut Fabrice,
La méthode SaveAs comporte un paramètre facultatif fort à propos qui résoud des problèmes comme le tien. Il s'agit du paramèter 'Local', dont je te retranscris la définition, tiré de l'aide d'Excel 2002:
Local: Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).
Un seul doute, je ne me souviens pas si ce nouveau paramètre est apparu sous Excel 2000 ou XL 2002. Tu nous diras.
Laurent M.
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas
disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Merci encore
Fabrice
"Laurent M" <lmortezai@metro.ca.nada> a écrit dans le message de
news:3F12DC9F.5040707@metro.ca.nada...
Salut Fabrice,
La méthode SaveAs comporte un paramètre facultatif fort à propos qui
résoud des problèmes comme le tien. Il s'agit du paramèter 'Local', dont
je te retranscris la définition, tiré de l'aide d'Excel 2002:
Local: Argument de type Variant facultatif. La valeur True enregistre
les fichiers en fonction de la langue de Microsoft Excel (y compris les
paramètres du Panneau de configuration). La valeur False (valeur par
défaut) enregistre les fichiers en fonction de la langue de Visual Basic
pour Applications (VBA) (qui est généralement l'anglais des États-Unis,
sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet
VBA XL5/95 de niveau international).
Un seul doute, je ne me souviens pas si ce nouveau paramètre est apparu
sous Excel 2000 ou XL 2002. Tu nous diras.
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Merci encore Fabrice
"Laurent M" a écrit dans le message de news:
Salut Fabrice,
La méthode SaveAs comporte un paramètre facultatif fort à propos qui résoud des problèmes comme le tien. Il s'agit du paramèter 'Local', dont je te retranscris la définition, tiré de l'aide d'Excel 2002:
Local: Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).
Un seul doute, je ne me souviens pas si ce nouveau paramètre est apparu sous Excel 2000 ou XL 2002. Tu nous diras.
Laurent M.
Laurent M
Fabrice wrote:
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Euh...ben tu n'as qu'à installer Excel 2002...
;-)))
Sérieusement, j'ai déjà contourné un problème similaire, il y a quelques années. L'enregistrement en format texte délimité par la voie de VBA séparait mes paramèters par des virgules au lieu des points-virgules, alors que le même enregistrement en mode manuel marchait très bien. Tu peux imaginer ma perplexité à l'époque: j'active le mode d'enregistrement de macro, je fais fichier/enregistrer sous. J'enresgistre en format texte délimité. J'arrête le mode d'enregistrement. Je vérifie le fichier résultant: super! il contient des points vigules! Donc, je fais confiance à la macro. Sauf que quand j'exécute la macro, rien ne va plus, j'obtiens des virgules! C'est assez déroutant la première fois...
Donc, j'avais contourné le problème comme suit: je m'étais créé une colonne de calcul supplémentaire (pour simplifier, place-là dans un autre onglet vierge). Cette colonne est une concaténation de toutes les colonnes que tu veux enregistrer. Tu me vois venir? Il ne reste plus qu'à enregister cet onglet en format texte.
La difficulté réside dans la confection de cette formule de concaténation: il faut faire attention à combler avec des espaces les champs de longueur variable, formater les dates, etc. Mais rien d'insurmontable. Quelques coups de DROITE, GAUCHE, RÉPÉTER, TEXTE...
A+
Laurent M.
Fabrice wrote:
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas
disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Euh...ben tu n'as qu'à installer Excel 2002...
;-)))
Sérieusement, j'ai déjà contourné un problème similaire, il y a quelques
années. L'enregistrement en format texte délimité par la voie de VBA
séparait mes paramèters par des virgules au lieu des points-virgules,
alors que le même enregistrement en mode manuel marchait très bien. Tu
peux imaginer ma perplexité à l'époque: j'active le mode
d'enregistrement de macro, je fais fichier/enregistrer sous.
J'enresgistre en format texte délimité. J'arrête le mode
d'enregistrement. Je vérifie le fichier résultant: super! il contient
des points vigules! Donc, je fais confiance à la macro. Sauf que quand
j'exécute la macro, rien ne va plus, j'obtiens des virgules! C'est assez
déroutant la première fois...
Donc, j'avais contourné le problème comme suit: je m'étais créé une
colonne de calcul supplémentaire (pour simplifier, place-là dans un
autre onglet vierge). Cette colonne est une concaténation de toutes les
colonnes que tu veux enregistrer. Tu me vois venir? Il ne reste plus
qu'à enregister cet onglet en format texte.
La difficulté réside dans la confection de cette formule de
concaténation: il faut faire attention à combler avec des espaces les
champs de longueur variable, formater les dates, etc. Mais rien
d'insurmontable. Quelques coups de DROITE, GAUCHE, RÉPÉTER, TEXTE...
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Euh...ben tu n'as qu'à installer Excel 2002...
;-)))
Sérieusement, j'ai déjà contourné un problème similaire, il y a quelques années. L'enregistrement en format texte délimité par la voie de VBA séparait mes paramèters par des virgules au lieu des points-virgules, alors que le même enregistrement en mode manuel marchait très bien. Tu peux imaginer ma perplexité à l'époque: j'active le mode d'enregistrement de macro, je fais fichier/enregistrer sous. J'enresgistre en format texte délimité. J'arrête le mode d'enregistrement. Je vérifie le fichier résultant: super! il contient des points vigules! Donc, je fais confiance à la macro. Sauf que quand j'exécute la macro, rien ne va plus, j'obtiens des virgules! C'est assez déroutant la première fois...
Donc, j'avais contourné le problème comme suit: je m'étais créé une colonne de calcul supplémentaire (pour simplifier, place-là dans un autre onglet vierge). Cette colonne est une concaténation de toutes les colonnes que tu veux enregistrer. Tu me vois venir? Il ne reste plus qu'à enregister cet onglet en format texte.
La difficulté réside dans la confection de cette formule de concaténation: il faut faire attention à combler avec des espaces les champs de longueur variable, formater les dates, etc. Mais rien d'insurmontable. Quelques coups de DROITE, GAUCHE, RÉPÉTER, TEXTE...
A+
Laurent M.
Fabrice
Bon, je crois que finalement je vais acheter Excel 2002 :-)
En tout cas merci du tuyau et vive les concaténations !
Je vais tester tout ça
Merci Fabrice
"Laurent M" a écrit dans le message de news:
Fabrice wrote:
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Euh...ben tu n'as qu'à installer Excel 2002...
;-)))
Sérieusement, j'ai déjà contourné un problème similaire, il y a quelques années. L'enregistrement en format texte délimité par la voie de VBA séparait mes paramèters par des virgules au lieu des points-virgules, alors que le même enregistrement en mode manuel marchait très bien. Tu peux imaginer ma perplexité à l'époque: j'active le mode d'enregistrement de macro, je fais fichier/enregistrer sous. J'enresgistre en format texte délimité. J'arrête le mode d'enregistrement. Je vérifie le fichier résultant: super! il contient des points vigules! Donc, je fais confiance à la macro. Sauf que quand j'exécute la macro, rien ne va plus, j'obtiens des virgules! C'est assez déroutant la première fois...
Donc, j'avais contourné le problème comme suit: je m'étais créé une colonne de calcul supplémentaire (pour simplifier, place-là dans un autre onglet vierge). Cette colonne est une concaténation de toutes les colonnes que tu veux enregistrer. Tu me vois venir? Il ne reste plus qu'à enregister cet onglet en format texte.
La difficulté réside dans la confection de cette formule de concaténation: il faut faire attention à combler avec des espaces les champs de longueur variable, formater les dates, etc. Mais rien d'insurmontable. Quelques coups de DROITE, GAUCHE, RÉPÉTER, TEXTE...
A+
Laurent M.
Bon, je crois que finalement je vais acheter Excel 2002 :-)
En tout cas merci du tuyau et vive les concaténations !
Je vais tester tout ça
Merci
Fabrice
"Laurent M" <lmortezai@metro.ca.nada> a écrit dans le message de
news:3F12EB91.50903@metro.ca.nada...
Fabrice wrote:
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas
disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Euh...ben tu n'as qu'à installer Excel 2002...
;-)))
Sérieusement, j'ai déjà contourné un problème similaire, il y a quelques
années. L'enregistrement en format texte délimité par la voie de VBA
séparait mes paramèters par des virgules au lieu des points-virgules,
alors que le même enregistrement en mode manuel marchait très bien. Tu
peux imaginer ma perplexité à l'époque: j'active le mode
d'enregistrement de macro, je fais fichier/enregistrer sous.
J'enresgistre en format texte délimité. J'arrête le mode
d'enregistrement. Je vérifie le fichier résultant: super! il contient
des points vigules! Donc, je fais confiance à la macro. Sauf que quand
j'exécute la macro, rien ne va plus, j'obtiens des virgules! C'est assez
déroutant la première fois...
Donc, j'avais contourné le problème comme suit: je m'étais créé une
colonne de calcul supplémentaire (pour simplifier, place-là dans un
autre onglet vierge). Cette colonne est une concaténation de toutes les
colonnes que tu veux enregistrer. Tu me vois venir? Il ne reste plus
qu'à enregister cet onglet en format texte.
La difficulté réside dans la confection de cette formule de
concaténation: il faut faire attention à combler avec des espaces les
champs de longueur variable, formater les dates, etc. Mais rien
d'insurmontable. Quelques coups de DROITE, GAUCHE, RÉPÉTER, TEXTE...
Bon, je crois que finalement je vais acheter Excel 2002 :-)
En tout cas merci du tuyau et vive les concaténations !
Je vais tester tout ça
Merci Fabrice
"Laurent M" a écrit dans le message de news:
Fabrice wrote:
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Euh...ben tu n'as qu'à installer Excel 2002...
;-)))
Sérieusement, j'ai déjà contourné un problème similaire, il y a quelques années. L'enregistrement en format texte délimité par la voie de VBA séparait mes paramèters par des virgules au lieu des points-virgules, alors que le même enregistrement en mode manuel marchait très bien. Tu peux imaginer ma perplexité à l'époque: j'active le mode d'enregistrement de macro, je fais fichier/enregistrer sous. J'enresgistre en format texte délimité. J'arrête le mode d'enregistrement. Je vérifie le fichier résultant: super! il contient des points vigules! Donc, je fais confiance à la macro. Sauf que quand j'exécute la macro, rien ne va plus, j'obtiens des virgules! C'est assez déroutant la première fois...
Donc, j'avais contourné le problème comme suit: je m'étais créé une colonne de calcul supplémentaire (pour simplifier, place-là dans un autre onglet vierge). Cette colonne est une concaténation de toutes les colonnes que tu veux enregistrer. Tu me vois venir? Il ne reste plus qu'à enregister cet onglet en format texte.
La difficulté réside dans la confection de cette formule de concaténation: il faut faire attention à combler avec des espaces les champs de longueur variable, formater les dates, etc. Mais rien d'insurmontable. Quelques coups de DROITE, GAUCHE, RÉPÉTER, TEXTE...
A+
Laurent M.
Match
Salut Fabrice (et les autres),
une solution pas testée (et même que j'ai des doutes sur la crédibilité de cette solution)
si tu élargissais la colonne contenant des dates comme si elle devait contenir 2 ou 3 caractères de plus peut-être que tes ###### disparaîtraient.
Charles
"Fabrice" wrote in message news:3f12e28e$
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Merci encore Fabrice
"Laurent M" a écrit dans le message de news:
Salut Fabrice,
La méthode SaveAs comporte un paramètre facultatif fort à propos qui résoud des problèmes comme le tien. Il s'agit du paramèter 'Local', dont je te retranscris la définition, tiré de l'aide d'Excel 2002:
Local: Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).
Un seul doute, je ne me souviens pas si ce nouveau paramètre est apparu sous Excel 2000 ou XL 2002. Tu nous diras.
Laurent M.
Salut Fabrice (et les autres),
une solution pas testée (et même que j'ai des doutes sur la crédibilité de
cette solution)
si tu élargissais la colonne contenant des dates comme si elle devait
contenir 2 ou 3 caractères de plus
peut-être que tes ###### disparaîtraient.
Charles
"Fabrice" <zekkk@hotmail.com> wrote in message
news:3f12e28e$1_4@news.bluewin.ch...
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas
disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Merci encore
Fabrice
"Laurent M" <lmortezai@metro.ca.nada> a écrit dans le message de
news:3F12DC9F.5040707@metro.ca.nada...
Salut Fabrice,
La méthode SaveAs comporte un paramètre facultatif fort à propos qui
résoud des problèmes comme le tien. Il s'agit du paramèter 'Local', dont
je te retranscris la définition, tiré de l'aide d'Excel 2002:
Local: Argument de type Variant facultatif. La valeur True enregistre
les fichiers en fonction de la langue de Microsoft Excel (y compris les
paramètres du Panneau de configuration). La valeur False (valeur par
défaut) enregistre les fichiers en fonction de la langue de Visual Basic
pour Applications (VBA) (qui est généralement l'anglais des États-Unis,
sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet
VBA XL5/95 de niveau international).
Un seul doute, je ne me souviens pas si ce nouveau paramètre est apparu
sous Excel 2000 ou XL 2002. Tu nous diras.
une solution pas testée (et même que j'ai des doutes sur la crédibilité de cette solution)
si tu élargissais la colonne contenant des dates comme si elle devait contenir 2 ou 3 caractères de plus peut-être que tes ###### disparaîtraient.
Charles
"Fabrice" wrote in message news:3f12e28e$
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Merci encore Fabrice
"Laurent M" a écrit dans le message de news:
Salut Fabrice,
La méthode SaveAs comporte un paramètre facultatif fort à propos qui résoud des problèmes comme le tien. Il s'agit du paramèter 'Local', dont je te retranscris la définition, tiré de l'aide d'Excel 2002:
Local: Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic pour Applications (VBA) (qui est généralement l'anglais des États-Unis, sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet VBA XL5/95 de niveau international).
Un seul doute, je ne me souviens pas si ce nouveau paramètre est apparu sous Excel 2000 ou XL 2002. Tu nous diras.
Laurent M.
Fabrice
Bonjour à tous et tout d'abord merci de votre aide,
Effectivement, il y avait un problème de largeur de colonne. De plus, Excel ne gardait pas le format date souhaité (jj.mm.aa). Il affichait ce format à l'écran, mais lors de la conversion en fichier texte, il mettait une date au format jj.mm.aaaa. Pour résoudre ce problème, j'ai procédé comme suit : forcer le format date souhaité en convertissant les dates en texte :
et ensuite j'ai augmenté un chouiat la largeur de la colonne :
maCellule.EntireColumn.ColumnWidth = 8.3
Et maintenant ça marche.
Encore une fois merci à tous et très bonne semaine Fabrice
"Match" a écrit dans le message de news:%
Salut Fabrice (et les autres),
une solution pas testée (et même que j'ai des doutes sur la crédibilité de cette solution)
si tu élargissais la colonne contenant des dates comme si elle devait contenir 2 ou 3 caractères de plus peut-être que tes ###### disparaîtraient.
Charles
"Fabrice" wrote in message news:3f12e28e$
Merci Laurent de ta réponse. Malheureusement, cet argument n'est pas disponible dans la version 2000 d'Excel.
Si tu as une autre idée, car je sèche...
Merci encore Fabrice
"Laurent M" a écrit dans le message de news:
Salut Fabrice,
La méthode SaveAs comporte un paramètre facultatif fort à propos qui résoud des problèmes comme le tien. Il s'agit du paramèter 'Local', dont
je te retranscris la définition, tiré de l'aide d'Excel 2002:
Local: Argument de type Variant facultatif. La valeur True enregistre les fichiers en fonction de la langue de Microsoft Excel (y compris les
paramètres du Panneau de configuration). La valeur False (valeur par défaut) enregistre les fichiers en fonction de la langue de Visual Basic
pour Applications (VBA) (qui est généralement l'anglais des États-Unis,
sauf si le projet VBA où Workbooks.Open est exécuté est un ancien projet
VBA XL5/95 de niveau international).
Un seul doute, je ne me souviens pas si ce nouveau paramètre est apparu
sous Excel 2000 ou XL 2002. Tu nous diras.
Laurent M.
Bonjour à tous et tout d'abord merci de votre aide,
Effectivement, il y avait un problème de largeur de colonne. De plus, Excel
ne gardait pas le format date souhaité (jj.mm.aa). Il affichait ce format à
l'écran, mais lors de la conversion en fichier texte, il mettait une date au
format jj.mm.aaaa. Pour résoudre ce problème, j'ai procédé comme suit :
forcer le format date souhaité en convertissant les dates en texte :
Bonjour à tous et tout d'abord merci de votre aide,
Effectivement, il y avait un problème de largeur de colonne. De plus, Excel ne gardait pas le format date souhaité (jj.mm.aa). Il affichait ce format à l'écran, mais lors de la conversion en fichier texte, il mettait une date au format jj.mm.aaaa. Pour résoudre ce problème, j'ai procédé comme suit : forcer le format date souhaité en convertissant les dates en texte :