.txt vers excel

T

TED

Guest
Bonjour!
J' ai un fichier .txt que j' ouvre sous Excel.Ce fichier est une ligne de plus de 900 caractéres séparés chacun par un espace: 1 1 2 1...

Je voudrais donc retranscrire cela dans Excel avec 1 caractére par colonne,sur 250 colonnes et autant de lignes que nécessaire.

J' ai voulu enregistrer une macro de ce que je faisais "manuellement", mais j' ai un message qui indique que la macro ne peut être enregistrer.

Le problème est donc comment sélectionner les 250 premiers caractéres, les copier sur une ligne, puis les 250 suivants, etc.

Merci d' avance

Ted
 
V

Vériland

Guest
Bonsoir Ted,

N'est-il pas possible de modifier le fichier texte à l'aide du <bloc note> où autre traitement de texte avant ?

c'est à dire que si tes informations sont bien sur une ligne de 900 caractères, tous les 250° tu appuies sur <entrée> pour faire un saut de ligne tu obtiendrait déjà 4 lignes...

Ensuite pour excel, cela éviterait l'usage d'une macro ! d'autant plus que d'après tes informations il y a un espace entre chaque caractères... ce qui facilite le travail... effectivement il est très simple à partir d'Excel d'ouvrir un fichier texte et le transposer en colonne... il suffit à l'ouverture, de selectionner type de fichier texte et puis de suivre les étapes de l'assistant d'affichage qui propose plusieurs options !

A+ Vériland
 
B

Baroude

Guest
J'ai déjà fait une appli de ce style. J'avais utiliser les fonctions : Open...Input, Open...Output pour lire et écrire les données. En résumé: j'avais un fichier texte, je lit les enregistrements (open... input), je les "saucissonnent" en plusieurs champs, je les écrits dans un autre fichier (open... output) et ensuite je lit le 2ème fichier pour retranscrire les champs dans Excel.
Cela peut sembler compliquer mais il n'y a pas beaucoup de lignes de code.

L'aide dans VBA sur la fonction Input peut donner une idée.

Bon courage
Baroude
 
M

Moa

Guest
Je crois avoir une solution.Je reprends tout depuis le début.

1 ) Importer le fichier texte avec l'option "données externes" (qui se trouve dans le menu "Données"), "Importer le fichier texte" (tu sélectionne ton fichier), tu l'importes.

Une boîte de dialogue "assistant importation de texte", s'ouvre.

En principe, l'option "largeur fixe" est déjà cochée.Ne rien toucher, cliquer sur suivant.

Là, l'aperçu des données, tous les caractères sont séparés par des barres.
Faire terminer.

Une boîte de dialogue apparaît, demandant la cellule qui se trouvera en haut à gauche du tableau.Par défaut, la cellule dans la boîte de dialogue, sélectionnée, est la cellule où se trouve le curseur, au moment de la demande.

Faire ok, et voilà un beau tableau.

Deux points Très importants, qui fait que tu ne peux pas enregistrer ta macro.

A ) Quand tu demandes l'import, tu dois obligatoirement être dans une feuille vierge, ou alors, au début de ta macro, tu dois demander à créer une nouvelle feuille.

B) Si la cellule sélectionnée par défaut, est déjà pleine...impossible de recopier le tableau.

Important : Ton fichier.txt, doit porter toujours le même nom et être rangé dans le même répertoire de départ.


2) Bon maintenant, on a le tableau:

Tu fais un select de la cellule A1:A250
Copy (ou cut)
Select cellule A6 (pas en dessous, tu peux mettre A7 ou A8)
Paste

Tu fais select A251:A500
Copy (ou cut)
Select A6 (ou au dessus si avant tu es parti plus haut)
Paste

et ainsi de suite pour tes quatres colonnes

3) Select A1
Select ligne
Supprime
et voilà.

En tout cas, c'est comme cela que je fais...

Maintenant, le mieux c'est de faire cela en plusieurs macros que tu additionnera dans une seule après.

@ +

Moa
 
M

Moa

Guest
2erreurs

Excuse-moi, deux petites erreurs

1) select A7 (ou plus), la deuxième fois.Mais je pense que tu t'en étais apperçu

2) Pas de select all, avant select A1, pour l'éffacement de ta ligne, dont tu n'as plus besoin.

Par contre, si je ne me trompe pas de personne, je crois que je connais ce pseudo, sur un autre forum parlant de foot...Non...?

Si c'est le cas, je ne comprends pas comment ton import arrive sur une seule ligne, car le mien arrive sur 13 lignes, et par conséquent, j'utilise en plus la fonction transposé et select all.

Fonctions, qui m'ont, d'ailleurs, été données sur ce forum...comme quoi...!!

@ +

Moa
 
T

Thierry

Guest
Salut Moa,

Tu as écris un roman... Mais je crois que TED aura un problème de toutes façons avec ta solution, puisque Excel ne peut gérer que 256 cellules par ligne..
J'ai fabriqué une txt avec 900 caractères et je ne parviens pas à l'importer au delà des 256 cellules en ligne avec ta méthode.

Je vais essayer de voir çà chez moi ce soir...

@+Thierry
 
M

Moa

Guest
Oui, Oui, en fait, j'ai fait une petite erreur.

Voilà, j'ai fait la manip avec 2428 caractères et çà a marché.

Puis j'en ai fait une autre avec 228 caractères et çà a marché aussi.

Donc je viens de tout refaire, suite au message de Thierry.

Et, en fait, je me suis rendu compte que mon fichier importé de 2428 caractères, était déjà dans le sens Vertical et que l'autre était sur une seule ligne Horizontale.

D'où ma réussite la première fois.

De toute façon, je sais que c'est possible de le faire, car sur le forum de foudujeu, les joueurs de lotofoot, utilisent une méthode de ce genre avec excell.

Le problème, c'est qu'ils sont assez avares d'infos...!!

Mais je vais chercher...

@ +
et encore désolé pour la mauvaise info

Moa
 
T

TED

Guest
Merci à tous de vos réponses
Vèriland: c' est effectivement la solution que j' avais trouvée-merci quand même.
Baroude:je débute et donc je découvre au fur et à mesure.Je ne connaissais pas , mais je vais chercher-merci à toi
Moa :affirmatif, c' est bien moi.Voir 2éme post sur l'autre forum.
La solution pour une ligne me suffit car il est facile de l' appliquer aux 12 autres lignes ensuite. Encore merci Moa de ton travail.
Merci aussi à Thierry.

Si quelqu' un à la solution "automatisée",merci d'avance!!!

Ted
 

Discussions similaires

Réponses
73
Affichages
5 K

Membres actuellement en ligne

Statistiques des forums

Discussions
314 655
Messages
2 111 605
Membres
111 217
dernier inscrit
aladinkabeya2