Fichier txt ou csv?
Salut a tous, j'ai un petit bout de code qui enregistre un tableau d'une feuille excel en "txt". Je ne suis plus certain que c'est le format que je dois adopter car ce fichier (essai.txt) donne une erreur a l'ouverture d'une application specialise. Je vous envoi un autre fichier (load ram.hex) qui fonctionne. A premiere vu, la seule difference entre les 2 fichiers est l'espacement entre les donnees.
Notez que je peux changer l'extension du fichier .hex en .txt et il fonctionne toujours. Les 2 fichiers s'ouvrent avec bloc note!
Donc ma question est pourquoi le fichier "essai.tx.t" ne fonctionne pas et que "load ram.hex" fonctionne.
'version avec inputBox (genere fichier .txt)
Dim adr$, rep$
adr = ThisWorkbook.Path
rep = InputBox("Nom du Fichier a enregistrer", "Nom pour l'Enregistrement")
If rep = "" Then Exit Sub
Feuil3.Copy ' là le nom de ta feuille à copier
Rows("1:2").DELETE shift:=xlUp 'delete l'entete du tableau
ActiveWorkbook.SaveAs adr & "\" & rep & ".txt", FileFormat:=xlText
ActiveWorkbook.Close 1
Bonsoir Capucin le forum
Pourrais-tu aussi apprendre à utiliser les balises de code STP !!!!!!!
Tu sélectionnes tout le code VBA que tu mets dans le post et tu cliques sur Code entre Quote et List
merci pour nous .
traduction STP:
car ce fichier (essai.txt) donne une erreur a l'ouverture d'une application specialise.
tu m'as demandé un fichier txt c'est ce que j'ai fait si maintenant il faut autre chose, il suffit d'expliquer
a+
Papou
Oui, tu as bien fait ce que je voulais, mais pour une raison que j'ignore le fichier ne convient pas a l'application qui l'utilise par contre, le fichier "load ram. hex (que je t'ai egalement envoye) fonctionne. Je me demande pourquoi? peut-etre qu'il y a une autre forme de txt qui reglerais le probleme. Regarde le fichier "essai.txt", il y a des espaces entre les donnees, c'est peut etre ca que mon application n'aime pas. Si tu regarde dans le fichier "load ram.hex", les donnees sont toutes collees.
Alors, si tu pouvais colle les donnees dans mon fichier "essai.txt", je ferais un petit test.
voici la macro
sub fichier ()
'version avec inputBox (genere fichier .txt)
Dim adr$, rep$
adr = ThisWorkbook.Path
rep = InputBox("Nom du Fichier a enregistrer", "Nom pour l'Enregistrement")
If rep = "" Then Exit Sub
Feuil3.Copy ' là le nom de ta feuille à copier
Rows("1:2").DELETE shift:=xlUp 'delete l'entete du tableau
ActiveWorkbook.SaveAs adr & "\" & rep & ".txt", FileFormat:=xlText
ActiveWorkbook.Close 1
End Sub
Papou, je viens d'apprendre une notion importante sur le fichier que je veux creer qui est ce qu'on appelle un fichier Intel hex. En apparence le fichier txt que nous avons creer est correcte mais il semblerais qu'on doive mettre un carriage return et un linefeed au bout de chaque ligne. J'ai l'impression que c'est ca mon probleme.
Voici le contenu de l'info que j'ai trouve:
The Intel HEX file is made up of any number of data records that are terminated with a carriage return and a linefeed. Data records appear as follows:
:10246200464C5549442050524F46494C4500464C33
This record is decoded as follows:
:10246200464C5549442050524F46494C4500464C33
||||||||||| CC->Checksum
|||||||||DD->Data
|||||||TT->Record Type
|||AAAA->Address
|LL->Record Length
:->Colon
J'ai trouve ce qu'il faut faire d'apres mes test pour que le logiciel interprete le fichier txt genere, de la bonne facon : avant d'enregistrer le tableau en fichier txt, mettre toute les colonnes d'une ligne du tableau dans la meme cellule, donc un genre de concatener.
Il faudrais modifier notre VBA.
P.S. pour l'histoire des CR et lineFeed, ca semble ne plus avoir d'importance ave cette methode. Excuse-moi pour tout les couriels envoye!
Je t'envoi le tableau excel a traiter et les directives sont dedans
'version avec inputBox (genere fichier .txt)
sub fichier ()
Dim adr$, rep$
adr = ThisWorkbook.Path
rep = InputBox("Nom du Fichier a enregistrer", "Nom pour l'Enregistrement")
If rep = "" Then Exit Sub
Feuil3.Copy ' là le nom de ta feuille à copier
Rows("1:2").DELETE shift:=xlUp 'delete l'entete du tableau
ActiveWorkbook.SaveAs adr & "\" & rep & ".txt", FileFormat:=xlText
ActiveWorkbook.Close 1
End Sub
Salut Myta!
Lorsque j'ai une donne par cellule dans mon tableau, le fichier txt genere contient des espaces entre les donnees et ca ne marche pas.
Je t'envoi comme je l'ai fait avec Papou, 2 tableaux. Le mien et un autre que j'ai pris quelques part et qui fonctionne. Ce dernier est un .hex mais je peux y mettre l'extension .txt et il fonctionne aussi bien. J'ai verifiai tout ca a l'aide d'un logiciel Programmeur de Chip.
Merci de te penche toi aussi sur le probleme.
Bonjour Banzaï
Bon alors on va y arriver (peut-être) voilà avec ta demande maintenant, moi j'ai mis toutes les colonnes je ne savais pas si le checksum doit être inclue ou non??
Banzaï, moi je ne savais pas si le nombre de colonne est toujours le même alors j'ai automatisé, pour être sur de bien prendre toutes les colonnes au cas ou le nombre ne serait pas constant.
Capucin tu ouvres tu testes et tu nous redis
a+
Papou
EDIT: Après avoir lu le fichier joint au dessus tableau.xls, il faut bien la colonne V donc la macro que j'ai fourni doit donner le bon fichier cette fois-ci, la macro modifié par Banzaï aussi.
Papou, il faut que je te mentionne que ta version supprime les 2 premieres lignes du tableau et reecris ce tableau dans ma feuille excel, donc si j'execute ta macro plusieurs fois, je perd X fois 2 lignes. Je pense que le probleme est que tu as modifie la macro en fonction du tableau que je t'ai envoye et que dans celui-ci, j'avais deja enlever l'entete (les 2 premieres lignes) alors que dans mon application l'entete est la. Banzai a employe le tableau avec entete. Comme tu en as deja beaucoup fait comme ca, je vais utiliser ta macro, modifie par Banzai.
Merci a vous deux!