Ajout de guillemets lors de l'ecriture dans un fichier txt en vba

Robmachine

XLDnaute Nouveau
Bonjour à tous,

je suis en train de coder une macro VBA qui dois écrire sur une ligne précise (ligne numéro 79 ,354 et 425 par exemple) d'un fichier txt, l'enregistré et le fermé.

Pour ce faire j'utilise la fonction suivante pour ouvrir le fichier texte

Workbooks.OpenText Filename:=FNAME, Origin:=xlWindows, StartRow:=1, _
DataType:=xlDelimited, TextQualifier:=xlNone, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _
Comma:=False, Space:=False, local:=True, Other:=False

qui ouvre le fichier txt sous excel

Puis j'insère une nouvelle ligne;

Rows(79).Insert Shift:=xlDown
Cells(79, 2) = "texte à insérer"

Rows(354).Insert Shift:=xlDown
Cells(354, 2) = "texte à insérer"

Rows(425).Insert Shift:=xlDown
Cells(425, 2) = "texte à insérer"

Puis je sauve et ferme le fichier

Workbooks("Fonction_extraction_IBES.sql").Save
Workbooks("Fonction_extraction_IBES.sql").Close False

Lorsque je rouvre manuellement le fichier txt afin de voir le résultat, je remarque que pour toutes les données de chaque lignes sont entre guillemets comme suit:

"11,"
"5075,"
"5947,"
"2482,"
"308389,"
"107121,"
"351,"
"25,"
"306435,"
"101700,"
"65,"
"231039,"
"6052


comment faire pour exécuter les même macro sans avoir ces guillemets à chaque lignes

merci d'avance
 

Robmachine

XLDnaute Nouveau
Re : Ajout de guillemets lors de l'ecriture dans un fichier txt en vba

Bonjour,

Cela ne résout malheureusement pas mon problème...

Pour être plus précis, chaque ligne de mon fichier txt ne contenait aucune guillemet avant exécution de la macro, c'est a dire que mon fichier ressemble ) cela:

REM *********************************************
alter session set nls_date_format = 'DD/MM/YYYY';
REM *********************************************

set pagesize 0
SET LINESIZE 290
SET SPACE 0
SET VERIFY OFF
SET ECHO OFF


REM *****************************************************************
REM *****************************************************************

spool V:\ETUDES\Olivier\Params\Reponses\IBES\EBIT.txt

PROMPT IFCFIN;IFNOM;SEF_MEASURE;EXERCICE;SEF_MEAN;SEF_NB_EST;SEF_MEAN_4WKS_AGO;SEF_NB_EST_4WKS_AGO;SEF_NB_EST_RAISED_4WKS;SEF_NB_EST_LOWERED_4WKS;SEF_DATE_MAJ;

select distinct
IFCFIN,';',
IFNOM,';',
SEF_MEASURE,';',
SEF_FISCAL_PERIOD_MONTH||'/'||SEF_FISCAL_PERIOD_YEAR EXERCICE,';',
SEF_MEAN,';',
SEF_NB_EST,';',
SEF_MEAN_4WKS_AGO,';',
SEF_NB_EST_4WKS_AGO,';',
SEF_NB_EST_RAISED_4WKS,';',
SEF_NB_EST_LOWERED_4WKS,';',
SEF_DATE_MAJ
from instruments,produits,codes ibes, analyse.ibes_summary_estimates_file
where ifcfin in
(
278,
2481,
364,
5,
2490,
9,
11,
5075,
5947,
2482,
308389,
107121,

après exécution , voici ce que j'obtient:

REM *********************************************
alter session set nls_date_format = 'DD/MM/YYYY'
REM *********************************************

set pagesize 0
SET LINESIZE 290
SET SPACE 0
SET VERIFY OFF
SET ECHO OFF


REM *****************************************************************
REM *****************************************************************

spool V:\ETUDES\Olivier\Params\Reponses\IBES\EBIT.txt

PROMPT IFCFIN IFNOM SEF_MEASURE EXERCICE SEF_MEAN SEF_NB_EST SEF_MEAN_4WKS_AGO SEF_NB_EST_4WKS_AGO SEF_NB_EST_RAISED_4WKS SEF_NB_EST_LOWERED_4WKS SEF_DATE_MAJ

select distinct
"IFCFIN,'" "',"
"IFNOM,'" "', "
"SEF_MEASURE,'" "',"
"SEF_FISCAL_PERIOD_MONTH||'/'||SEF_FISCAL_PERIOD_YEAR EXERCICE,'" "', "
"SEF_MEAN,'" "',"
"SEF_NB_EST,'" "',"
"SEF_MEAN_4WKS_AGO,'" "',"
"SEF_NB_EST_4WKS_AGO,'" "',"
"SEF_NB_EST_RAISED_4WKS,'" "',"
"SEF_NB_EST_LOWERED_4WKS,'" "',"
SEF_DATE_MAJ
"from instruments,produits,codes ibes, analyse.ibes_summary_estimates_file"
where ifcfin in
(
"278,"
"2481,"
"364,"
"5,"
"2490,"
"9,"
"11,"
"5075,"
"5947,"
"2482,"
"308389,"
"107121,"

Des guillemets ce sont ajouté partout....

Après navigation sur certains forum, j'ai lu que lorsque l'on utilise la fonction "Write" au lieu de "Print" on pouvait avoir ce genre de problème...

Mais me concernant ,j'ouvre le fichier texte comme un fichier excel, et je n'utilise donc pas de code basé sur FileSystemObject.
 

genialo4000

XLDnaute Nouveau
Re : Ajout de guillemets lors de l'ecriture dans un fichier txt en vba

Bonjour,

Je ne suis pas un pro mais pour avoir déjà ouvert des fichiers autre que .xls(x,m) dans Excel, je sais que j'avais eu des problèmes à cause des séparateurs. De mémoire, en version française, le séparateur c'est le ";". Mais pour la version anglaise (et c'est ce qui est appliqué en VBA pour moi), le séparateur c'est la virgule "," !

On voit en effet que tu as des problèmes (tes guillemets) à toutes les lignes où tu as des virgules.

Malheureusement, je ne connais pas la solution (surement dans les arguments du Workbooks.OpenText) mais je pense que le problème vient de là !

Si je trouve, je te dis :p
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 319
Membres
103 177
dernier inscrit
grizly