EXPORT de données Excel en .TXT (suite et fin ?)

D

Dagada75

Guest
Malgré tous mes efforts et ceux qui participer directement et indirectement pour trouver une soltuion à ce problème; je n'arrive pas "à imposer" un certain nombre de caractères à l'export de données texte d'une cellule de feuille excel.

Si la macro de CBernardT permet effectivement d'imposer un nombre de caractères définis par cellule (colonne) d'une feuille excel (ici 20 caractères); l'export des données de cette cellule en fichier TXT ne semble pas conserver ces propriétés puisque que le fichier TXT généré à l'aide d'une autre macro (auteur : Vériland ) me rapatrie bien mes données de cellule mais la "longueur" des données exportés ne correspondent pas à celles définies sous excel.

Il semblerait qu'il y ait un rajout de quelques caractères par je ne sais quel algorythme ...

Si quelqu'un perce le mystère et, sans peut-être trouver la solution, peut m'apporter un brin d'explications .. j'en serai fort reconnaissant.
MERCI POUR TOUT.

Fichier exemple joint.
 

Pièces jointes

  • Exemple_20122004.zip
    8.2 KB · Affichages: 37
D

Dagada75

Guest
Bonjour Robert,

Quelle est cette fonction ? Je ne la trouve pas sous excel ?

Est-ce une fonction VBA .... car dans ce cas c'est malheureusement en dehors de mes compétences.

Merci pour votre collaboration. Mais il semblerait que l'opération d'export pose toujours problème ... je précise une cellule A1 de 20 caractères et, une fois mon fichier TXT généré, la valeur exportée de A1 fait 28 caractères (pour moi 1 espace = 1 caractère) : d'où viennent ces 8 caractères ? Mystère...
 
@

@+Thierry

Guest
Bonjour Dagada, Robert

Essaie le "Tab(n)" dans ton Print Statement... Ce qui aura pour avantage de ne pas toucher les cellules en ajoutant des espaces... (Plus besoin de la macro "AjouterEspace")

Sub Export_en_TXT()
Dim TheLine As String
Dim i As Integer, L As Integer, x As Integer

Open "C:\MonFichier.txt" For Output As #1

With Sheets("Feuil1")
L = .Range("A65536").End(xlUp).Row

   For i = 1 To L
      Print #1, .Cells(i, 1), Tab(21); .Cells(i, 2).Text, .Cells(i, 3).Text
   Next
End With
Close #1
End Sub


Sinon tu as aussi une autre méthode dans cette démo :

=> Lien supprimé

Bon appétit à tous et toutes
@+Thierry
 
D

Dagada75

Guest
Merci @+Thierry


Vos aides me font très plaisir.

L'idée de la tabulation était bonne. Cependant, vu que mon fichier TXT est destiné à être injecté dans un autre logiciel (SAP); toutes mes données doivent être sur la même ligne ! Or, cela est rendu impossible par la fonction Tab() puisque que le fichier TXT une fois généré fais apparaître un "saut de ligne" entre les données de la cellule A1 et celles de B1.

D'autant plus que je n'aie employé que deux cellules, pour simplifier mon exemple; mais ma LIGNE TYPE excel en production comportera 50 cellules avec chacun leurs propres caractéristiques dimensionnelles (nb de caractères) qui devront être préservées dans ma LIGNE TYPE de fichier TXT généré. Le gros soucis est la prise en compte des espaces dans ma ligne de fichier TXT pour combler le nombre de caractères manquant au contenu de ma cellule Excel :
A1 (20 caractères) excel "CHIEN" devient "CHIEN " (txt)
 
D

Dagada75

Guest
AAAaaaaaaaaarrgh l'envoie de mon message n'a pris en compte les espaces (lui aussi !! :eek:) ) pour mon exemple ....

Je voulais donc dire, et en admettant qu'un espace "" égale "*" pour concrétiser mon exemple que; pour une MEME ligne :

A1 (20 caractères) excel "CHIEN" devient "CHIEN***************" (txt)
 
@

@+Thierry

Guest
Re bonjour David, Robert, le Forum

Vu que ce sujet semble interressant pour pas mal d'utilisateurs d'Excel, j'ai fait un nouveau Post avec une Démo sur ton Problème...

Je te donne donc rendez vous dans Lien supprimé

Je pense que tu seras content...

Bon Après Midi
@+Thierry
 
D

Dagada75

Guest
Que dire ....

TU ES UN GENIE ! VOUS ETES DES GENIES !

CE SITE EST GENIAL !!! :eek:)))))))))))))))))))))))))

Je suis abasourdi par ton exemple ... QUI REPOND PARFAITEMENT A MON OBJECTIF !!!

@+Thierry je te remercie 1000 fois ... non 1 000 000 de fois !!!! Le père noêl a été en avance cette année !!!!

Je me presse de faire la publicité de ce forum pour partager et mélanger nos expertises/expériences !

Merci à Robert, @+Thierry et CBernardT pour leur attention.

Merci à TOUS ! Joyeuses fêtes !
 

Discussions similaires

M
Réponses
9
Affichages
502
Maikales
M

Statistiques des forums

Discussions
312 389
Messages
2 087 892
Membres
103 673
dernier inscrit
FmZoner