Convertir .xls en .txt en respectant largeur colonnes.

TranKILL87 Messages postés 14 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 30 mars 2006 - 27 juil. 2005 à 10:49
TranKILL87 Messages postés 14 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 30 mars 2006 - 28 juil. 2005 à 09:56
Bonjour,
Alors voila le problème il faudrait que je trouve un moyen de convertir un fichier Excel en .txt mais en respectant la largeur des colonnes.
Cadque j'ai des references a 6 chiffres a rentrer et je voudrais qu'elles sortent en colonnes avec un espace tous les 6 caracteres et du blanc si il n'y a pas 6 caractères.
ex:

000121 124000 12133 123444
7575 1231 1111
777123 45600

Mm je ne sais pas si je suis très clair mais voila je pense que c'est possible de faire cela avec du VB dans Access alors si vous savez comment n'hésitez pas à me répondre.

3 réponses

TranKILL87 Messages postés 14 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 30 mars 2006
27 juil. 2005 à 10:50
arg ca passe mal la mise en page la ....
xxxxxx xxxxxx xxxxxx
xxxxxx xxxxxx xxxxxx
enfin comme ca il faudrai ke ca sorte le .txt que ce soit des blancs ou des chiffres à la place de x
0
cs_insomnix Messages postés 20 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 13 septembre 2005
27 juil. 2005 à 14:54
Salut,
J'ai deja utilisé un script assez similaire pour mettre en forme du text provenant d'un fichier excel. Je te le met si dessous en esperant que ca pourra t'aider.
Il faut que tu sauvegardes ta feuille en .txt separateur tab

Dim o_FileSystemObjectOpen As FileSystemObject
Dim o_TextStreamOpen As TextStream
Dim o_FileSystemObjectWrite As FileSystemObject
Dim o_TextStreamWrite As TextStream
Dim s_nomficopen As String
Dim s_nomficwrite As String
Dim s_ligne As String
Dim s_affichage As String
Dim t_tab() As String
Dim C_ESPACE As String

'Ligne max d'espace (il faut que le nb d'espace soit superieur a ton nb max de caractere du champ le plus grand
C_ESPACE = " "

'Chemin du fichier non formaté
s_nomficopen = "C:\FichierText.txt"

'Chemin du fichier formaté
s_nomficwrite = "C:\FichierFormate.txt"

'Ouverture du fichier non formaté
Set o_FileSystemObjectOpen = New FileSystemObject
Set o_TextStreamOpen = o_FileSystemObjectOpen.OpenTextFile(s_nomficopen, ForReading, False, TristateUseDefault)


'Creation du fichier formaté
Set o_FileSystemObjectWrite = New FileSystemObject
Set o_TextStreamWrite = o_FileSystemObjectWrite.CreateTextFile(s_nomficwrite, True)

'Boucle jusqu'a la fin du fichier non formaté
Do While Not o_TextStreamOpen.AtEndOfStream

'Place une ligne du fichier non formaté dans s_ligne et pointe sur la prochaine
s_ligne = o_TextStreamOpen.ReadLine

'Decoupe la ligne dans un tableau avec le separteur 'Tabulation' 'Ex tab(0) 1er champ, tab(1) 2eme champ...
t_tab = Split(s_ligne, Chr$(9))

'Met en forme les donnés dans un string
s_affichage = t_tab(0) & Right(C_ESPACE, Len(C_ESPACE) - Len(t_tab(0)))
s_affichage = s_affichage & t_tab(1) & Right(C_ESPACE, Len(C_ESPACE) - Len(t_tab(1)))
s_affichage = s_affichage & t_tab(2) & Right(C_ESPACE, Len(C_ESPACE) - Len(t_tab(2)))
s_affichage = s_affichage & t_tab(3) & Right(C_ESPACE, Len(C_ESPACE) - Len(t_tab(3)))
s_affichage = s_affichage & t_tab(4) & Right(C_ESPACE, Len(C_ESPACE) - Len(t_tab(4)))
'On peux continuer jusqu'au nombre max de colonne

'Sauvegarde le string dans le fichier formaté
o_TextStreamWrite.WriteLine s_affichage

'passe a la prochaine ligne
Loop

'Ferme les 2 fichiers
o_TextStreamOpen.Close
o_TextStreamWrite.Close

'Libere la memoire
Set o_TextStreamOpen = Nothing
Set o_TextStreamWrite = Nothing
Set o_FileSystemObjectWrite = Nothing
Set o_FileSystemObjectOpen = Nothing

Voila, si tu veux plus d'explication : insomnix@gmail.com
Bon courrage
0
TranKILL87 Messages postés 14 Date d'inscription mercredi 1 juin 2005 Statut Membre Dernière intervention 30 mars 2006
28 juil. 2005 à 09:56
y a pas une version simplifié ??? ca me parait bien compliqué pour au final pas grand chose.
0
Rejoignez-nous