Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Vba: enregistrer sous... Texte (séparateur: tabulation)(*.txt)

487 views
Skip to first unread message

Jac

unread,
Nov 26, 2009, 4:34:18 AM11/26/09
to
Bonjour ᅵ tous,

je veux enregistrer mon fichier actif au format
Texte (sᅵparateur: tabulation)(*.txt)
que je trouve dans la liste des types de fichiers lors d'un
"Enregistrer sous...", mais que je ne retrouve ni via l'enregistreur de
macros ni dans la liste 43 formats possibles tels que dᅵcrits dans
l'aide sous "FileFormat, propriᅵtᅵ".

J'ai essayᅵ (je pense) tous les formats qui me semblent enregistrer en
txt. En vain. Problᅵme : les sᅵparateurs de milliers sont remplacᅵs par
des virgules et les nombres sont placᅵs entre double cottes.

Exemple : 12 000 devient "12,000"
Et certains formats txt, souvent les "Dos", remplacent les caractᅵres
accentuᅵs par d'autres signes.

Merci d'avance ᅵ qui pourrait m'orienter vers la solution qui doit ᅵtre
devant mes yeux, mais que je ne vois pas...

Jac


michdenis

unread,
Nov 26, 2009, 5:34:27 AM11/26/09
to
Bonjour Jac,

Quand tu fais enregistrer sous, tu sᅵlectionnes dans la liste
dᅵroulante - type de fichier- Texte unicode(*.txt) et cela
fonctionne bien !

Si tu dᅵsires, tu peux utiliser ceci : une petite macro :
Si tu veux sauvegarder tes donnᅵes avec un format particulier,
tu peux utiliser la fonction "Format()" pour formater chacune des
donnᅵes de la plage dans la procᅵdure.

'-----------------------------------------
Sub SaveAsTextFile()
Dim C As Variant
Dim fFilename As String
Dim a As Integer, b As Integer
Dim tmP As String
Dim Separateur As String

'Tu choisis le sᅵparateur de ton choix
Separateur = vbTab
'Plage ᅵ copier
With Worksheets("Feuil1")
C = Range("A1:C6")
End With

fFilename = _
Application.GetSaveAsFilename(InitialFileName:="nom_par_defaut", _
fileFilter:="Text Files (*.txt), *.txt")

Open fFilename For Output As #1

For a = 1 To UBound(C, 1)
tmP = ""
For b = 1 To UBound(C, 2)
If tmP > "" Then
tmP = tmP & Separateur & C(a, b)
Else
tmP = C(a, b)
End If
Next
Print #1, tmP
Next
Close #1
Erase C
End Sub
'-----------------------------------------

"Jac" <jsa...@amfra.net> a ᅵcrit dans le message de groupe de discussion :
eelCjunb...@TK2MSFTNGP04.phx.gbl...

Jac

unread,
Nov 26, 2009, 9:17:19 AM11/26/09
to
Bonjour michdenis,

ok pour ta solution, mais ce qui m'embᅵte, c'est que je voulais faire
un "truc" gᅵnᅵraliste, sans formatage particulier, c'est pour celᅵ que
je cours aprᅵs l'ᅵquivalence vba de
"Texte (sᅵparateur: tabulation)(*.txt)".
Les autres trafiquent les formats de nombre (je peux rᅵsoudre en
enlevant le sᅵparateur de milliers... mais j'aimerais mieux m'en
passer) ou suppriment les caractᅵres accentuᅵs.


michdenis vient de nous annoncer :

michdenis

unread,
Nov 26, 2009, 10:35:01 AM11/26/09
to
La solution ᅵ partir du menu Fichier qui existe dans
excel (windows7 et office 2007), je n'ai rien ᅵ retoucher
et il respecte le format et la tabulation !

Par macro, ᅵa donne ceci :

ActiveWorkbook.SaveAs Filename:="C:\Classeur3.txt", FileFormat:=xlText


"Jac" <jsa...@amfra.net> a ᅵcrit dans le message de groupe de discussion :

#9EQsMqb...@TK2MSFTNGP02.phx.gbl...

Jac

unread,
Nov 26, 2009, 12:49:13 PM11/26/09
to
... ok. J'ai supprimᅵ le formatage sur les nombres (sᅵparateur de
milliers qui me donnait quand mᅵme avec xlText des "12,000") et
j'enregistre en xlText. Les caractᅵres accentuᅵs sont conservᅵs.
Donc ᅵa me convient.

Merci encore de t'ᅵtre penchᅵ sur mon problᅵme

Jac

michdenis a formulᅵ ce jeudi :

0 new messages