OVH Cloud OVH Cloud

Problème sur une macro

5 réponses
Avatar
Bernard
Bonjour,

voil=E0 mon probl=E8me :
disons que dans une feuille Excel (ESSAI.XLS)=20
la colonne A contient du texte (MONTEXTE) et la B un=20
montant (104,12).
Pour importer dans un autre logiciel, j'enregistre=20
manuellement cette feuille en format TXT
(s=E9parateur Tabulation) l=E0 j'obtiens ce que je d=E9sire=20
soit MONTEXTE tabulation 104,12 dans un
fichier texte.
En automatisant par vb avec ActiveWorkbook.SaveAs=20
Filename:=3D"ESSAI.TXT", FileFormat:=3DxlText,=20
CreateBackup:=3DFalse
j'obtiens MONTEXTE tabulation "104,12" mais avec donc des=20
guillemets qui apparaissent.
J'ai essay=E9 avec la constante xlCSV j'obtiens le m=EAme=20
ph=E9nom=E8ne, (mon logiciel n'admet pas xlUnicodeText)

Pour v=E9rifier si je ne me trompais pas j'ai, avec=20
enregistrement automatique dans une nouvelle macro,
lanc=E9 la sauvegarde en format TXT j'obtiens le m=EAme code=20
que le mien
soit ActiveWorkbook.SaveAs Filename:=3D"ESSAI.TXT",=20
FileFormat:=3DxlText, CreateBackup:=3DFalse=20
le fichier texte obtenu est bon et si je relance la macro=20
l=E0 il n'est plus bon, =E0 moins de me tromper
j'en conclue que le code est bon mais qu'il y a une=20
diff=E9rence entre la sauvegarde manuelle et=20
celle faite par le code.
Seulement je ne vois pas quels param=E8tres je dois modifier=20
dans le code afin que les guillemets
ne se g=E9n=E8rent pas.
Le ph=E9nom=E8ne est facilement reproductible, je pr=E9cise que=20
lors de la sauvegarde manuelle je r=E9ponds oui =E0
=E0 la question "ESSAI.TXT peut contenir des informations=20
non compatible avec Texte=20
(s=E9parateur: tabulation) (*.txt) Voulez-vous conserver le=20
format du classeur ?
Cliquer sur Oui pour conserver le format, les=20
fonctionnalit=E9s non compatibles seront perdues"

D'avance merci =E0 tous ceux qui pourront m'aider

5 réponses

Avatar
docm
Bonsoir Bernard.
Une solution ou deux sont proposées dans la page de Excelabo:
http://www.excelabo.net/xl/sortir.php
sous l'étiquette:
Exporter des données d'excel en format texte brut

Saluts

"Bernard" wrote in message
news:19cb01c4ad70$d8e5ae90$
Bonjour,

voilà mon problème :
disons que dans une feuille Excel (ESSAI.XLS)
la colonne A contient du texte (MONTEXTE) et la B un
montant (104,12).
Pour importer dans un autre logiciel, j'enregistre
manuellement cette feuille en format TXT
(séparateur Tabulation) là j'obtiens ce que je désire
soit MONTEXTE tabulation 104,12 dans un
fichier texte.
En automatisant par vb avec ActiveWorkbook.SaveAs
Filename:="ESSAI.TXT", FileFormat:=xlText,
CreateBackup:úlse
j'obtiens MONTEXTE tabulation "104,12" mais avec donc des
guillemets qui apparaissent.
J'ai essayé avec la constante xlCSV j'obtiens le même
phénomène, (mon logiciel n'admet pas xlUnicodeText)

Pour vérifier si je ne me trompais pas j'ai, avec
enregistrement automatique dans une nouvelle macro,
lancé la sauvegarde en format TXT j'obtiens le même code
que le mien
soit ActiveWorkbook.SaveAs Filename:="ESSAI.TXT",
FileFormat:=xlText, CreateBackup:úlse
le fichier texte obtenu est bon et si je relance la macro
là il n'est plus bon, à moins de me tromper
j'en conclue que le code est bon mais qu'il y a une
différence entre la sauvegarde manuelle et
celle faite par le code.
Seulement je ne vois pas quels paramètres je dois modifier
dans le code afin que les guillemets
ne se génèrent pas.
Le phénomène est facilement reproductible, je précise que
lors de la sauvegarde manuelle je réponds oui à
à la question "ESSAI.TXT peut contenir des informations
non compatible avec Texte
(séparateur: tabulation) (*.txt) Voulez-vous conserver le
format du classeur ?
Cliquer sur Oui pour conserver le format, les
fonctionnalités non compatibles seront perdues"

D'avance merci à tous ceux qui pourront m'aider
Avatar
Bernard
Merci,
en mélangeant plusieurs exemples j'ai obtenu ce que je
voulais.
Encore merci
-----Message d'origine-----

Bonsoir Bernard.
Une solution ou deux sont proposées dans la page de
Excelabo:

http://www.excelabo.net/xl/sortir.php
sous l'étiquette:
Exporter des données d'excel en format texte brut

Saluts

"Bernard" wrote in
message

news:19cb01c4ad70$d8e5ae90$
Bonjour,

voilà mon problème :
disons que dans une feuille Excel (ESSAI.XLS)
la colonne A contient du texte (MONTEXTE) et la B un
montant (104,12).
Pour importer dans un autre logiciel, j'enregistre
manuellement cette feuille en format TXT
(séparateur Tabulation) là j'obtiens ce que je désire
soit MONTEXTE tabulation 104,12 dans un
fichier texte.
En automatisant par vb avec ActiveWorkbook.SaveAs
Filename:="ESSAI.TXT", FileFormat:=xlText,
CreateBackup:úlse
j'obtiens MONTEXTE tabulation "104,12" mais avec donc des
guillemets qui apparaissent.
J'ai essayé avec la constante xlCSV j'obtiens le même
phénomène, (mon logiciel n'admet pas xlUnicodeText)

Pour vérifier si je ne me trompais pas j'ai, avec
enregistrement automatique dans une nouvelle macro,
lancé la sauvegarde en format TXT j'obtiens le même code
que le mien
soit ActiveWorkbook.SaveAs Filename:="ESSAI.TXT",
FileFormat:=xlText, CreateBackup:úlse
le fichier texte obtenu est bon et si je relance la macro
là il n'est plus bon, à moins de me tromper
j'en conclue que le code est bon mais qu'il y a une
différence entre la sauvegarde manuelle et
celle faite par le code.
Seulement je ne vois pas quels paramètres je dois modifier
dans le code afin que les guillemets
ne se génèrent pas.
Le phénomène est facilement reproductible, je précise que
lors de la sauvegarde manuelle je réponds oui à
à la question "ESSAI.TXT peut contenir des informations
non compatible avec Texte
(séparateur: tabulation) (*.txt) Voulez-vous conserver le
format du classeur ?
Cliquer sur Oui pour conserver le format, les
fonctionnalités non compatibles seront perdues"

D'avance merci à tous ceux qui pourront m'aider




.



Avatar
Frédéric Sigonneau
Bonjour,

Tu peux passer directement par l'écriture d'un fichier texte en utilisant Print
(et non Write) :

'==================== Sub PlageToTxt()
'le plage à exporter vers un fichier texte est affectée à un tableau
'choix du délimiteur des données
Dim Li&, Col&, tmpTxt$, Delim$, Arr

Arr = Range("A1:B40").Value
Delim = vbTab

'nom et chemin du fichier de sortie à adapter
Open "d:Fichier.txt" For Output As #1
For Li = LBound(Arr, 1) To UBound(Arr, 1)
For Col = LBound(Arr, 2) To UBound(Arr, 2)
tmpTxt = tmpTxt & Arr(Li, Col) & Delim
Next
tmpTxt = Left(tmpTxt, Len(tmpTxt) - Len(Delim))
Print #1, tmpTxt
tmpTxt = ""
Next
Close #1
End Sub
'====================
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !

Bonjour,

voilà mon problème :
disons que dans une feuille Excel (ESSAI.XLS)
la colonne A contient du texte (MONTEXTE) et la B un
montant (104,12).
Pour importer dans un autre logiciel, j'enregistre
manuellement cette feuille en format TXT
(séparateur Tabulation) là j'obtiens ce que je désire
soit MONTEXTE tabulation 104,12 dans un
fichier texte.
En automatisant par vb avec ActiveWorkbook.SaveAs
Filename:="ESSAI.TXT", FileFormat:=xlText,
CreateBackup:úlse
j'obtiens MONTEXTE tabulation "104,12" mais avec donc des
guillemets qui apparaissent.
J'ai essayé avec la constante xlCSV j'obtiens le même
phénomène, (mon logiciel n'admet pas xlUnicodeText)

Pour vérifier si je ne me trompais pas j'ai, avec
enregistrement automatique dans une nouvelle macro,
lancé la sauvegarde en format TXT j'obtiens le même code
que le mien
soit ActiveWorkbook.SaveAs Filename:="ESSAI.TXT",
FileFormat:=xlText, CreateBackup:úlse
le fichier texte obtenu est bon et si je relance la macro
là il n'est plus bon, à moins de me tromper
j'en conclue que le code est bon mais qu'il y a une
différence entre la sauvegarde manuelle et
celle faite par le code.
Seulement je ne vois pas quels paramètres je dois modifier
dans le code afin que les guillemets
ne se génèrent pas.
Le phénomène est facilement reproductible, je précise que
lors de la sauvegarde manuelle je réponds oui à
à la question "ESSAI.TXT peut contenir des informations
non compatible avec Texte
(séparateur: tabulation) (*.txt) Voulez-vous conserver le
format du classeur ?
Cliquer sur Oui pour conserver le format, les
fonctionnalités non compatibles seront perdues"

D'avance merci à tous ceux qui pourront m'aider




Avatar
docm
Ca a été un plaisir.

"Bernard" wrote in message
news:418501c4afa0$1ae240c0$
Merci,
en mélangeant plusieurs exemples j'ai obtenu ce que je
voulais.
Encore merci
-----Message d'origine-----

Bonsoir Bernard.
Une solution ou deux sont proposées dans la page de
Excelabo:

http://www.excelabo.net/xl/sortir.php
sous l'étiquette:
Exporter des données d'excel en format texte brut

Saluts

"Bernard" wrote in
message

news:19cb01c4ad70$d8e5ae90$
Bonjour,

voilà mon problème :
disons que dans une feuille Excel (ESSAI.XLS)
la colonne A contient du texte (MONTEXTE) et la B un
montant (104,12).
Pour importer dans un autre logiciel, j'enregistre
manuellement cette feuille en format TXT
(séparateur Tabulation) là j'obtiens ce que je désire
soit MONTEXTE tabulation 104,12 dans un
fichier texte.
En automatisant par vb avec ActiveWorkbook.SaveAs
Filename:="ESSAI.TXT", FileFormat:=xlText,
CreateBackup:úlse
j'obtiens MONTEXTE tabulation "104,12" mais avec donc des
guillemets qui apparaissent.
J'ai essayé avec la constante xlCSV j'obtiens le même
phénomène, (mon logiciel n'admet pas xlUnicodeText)

Pour vérifier si je ne me trompais pas j'ai, avec
enregistrement automatique dans une nouvelle macro,
lancé la sauvegarde en format TXT j'obtiens le même code
que le mien
soit ActiveWorkbook.SaveAs Filename:="ESSAI.TXT",
FileFormat:=xlText, CreateBackup:úlse
le fichier texte obtenu est bon et si je relance la macro
là il n'est plus bon, à moins de me tromper
j'en conclue que le code est bon mais qu'il y a une
différence entre la sauvegarde manuelle et
celle faite par le code.
Seulement je ne vois pas quels paramètres je dois modifier
dans le code afin que les guillemets
ne se génèrent pas.
Le phénomène est facilement reproductible, je précise que
lors de la sauvegarde manuelle je réponds oui à
à la question "ESSAI.TXT peut contenir des informations
non compatible avec Texte
(séparateur: tabulation) (*.txt) Voulez-vous conserver le
format du classeur ?
Cliquer sur Oui pour conserver le format, les
fonctionnalités non compatibles seront perdues"

D'avance merci à tous ceux qui pourront m'aider




.



Avatar
Bernard
Merci


Bonjour,

Tu peux passer directement par l'écriture d'un fichier texte en utilisant Print
(et non Write) :

'==================== > Sub PlageToTxt()
'le plage à exporter vers un fichier texte est affectée à un tableau
'choix du délimiteur des données
Dim Li&, Col&, tmpTxt$, Delim$, Arr

Arr = Range("A1:B40").Value
Delim = vbTab

'nom et chemin du fichier de sortie à adapter
Open "d:Fichier.txt" For Output As #1
For Li = LBound(Arr, 1) To UBound(Arr, 1)
For Col = LBound(Arr, 2) To UBound(Arr, 2)
tmpTxt = tmpTxt & Arr(Li, Col) & Delim
Next
tmpTxt = Left(tmpTxt, Len(tmpTxt) - Len(Delim))
Print #1, tmpTxt
tmpTxt = ""
Next
Close #1
End Sub
'==================== >
FS
---
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://frederic.sigonneau.free.fr
Si votre question sur Excel est urgente, évitez ma bal !

Bonjour,

voilà mon problème :
disons que dans une feuille Excel (ESSAI.XLS)
la colonne A contient du texte (MONTEXTE) et la B un
montant (104,12).
Pour importer dans un autre logiciel, j'enregistre
manuellement cette feuille en format TXT
(séparateur Tabulation) là j'obtiens ce que je désire
soit MONTEXTE tabulation 104,12 dans un
fichier texte.
En automatisant par vb avec ActiveWorkbook.SaveAs
Filename:="ESSAI.TXT", FileFormat:=xlText,
CreateBackup:úlse
j'obtiens MONTEXTE tabulation "104,12" mais avec donc des
guillemets qui apparaissent.
J'ai essayé avec la constante xlCSV j'obtiens le même
phénomène, (mon logiciel n'admet pas xlUnicodeText)

Pour vérifier si je ne me trompais pas j'ai, avec
enregistrement automatique dans une nouvelle macro,
lancé la sauvegarde en format TXT j'obtiens le même code
que le mien
soit ActiveWorkbook.SaveAs Filename:="ESSAI.TXT",
FileFormat:=xlText, CreateBackup:úlse
le fichier texte obtenu est bon et si je relance la macro
là il n'est plus bon, à moins de me tromper
j'en conclue que le code est bon mais qu'il y a une
différence entre la sauvegarde manuelle et
celle faite par le code.
Seulement je ne vois pas quels paramètres je dois modifier
dans le code afin que les guillemets
ne se génèrent pas.
Le phénomène est facilement reproductible, je précise que
lors de la sauvegarde manuelle je réponds oui à
à la question "ESSAI.TXT peut contenir des informations
non compatible avec Texte
(séparateur: tabulation) (*.txt) Voulez-vous conserver le
format du classeur ?
Cliquer sur Oui pour conserver le format, les
fonctionnalités non compatibles seront perdues"

D'avance merci à tous ceux qui pourront m'aider