Import txt

cs_actaruss Messages postés 55 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 27 mai 2009 - 30 nov. 2005 à 15:14
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 30 nov. 2005 à 16:24
Bonjour à tous,
Voilà, j'ai des fichiers en .txt dans un dossier spécifique.
Ces fichiers contiennent des infos avec des espaces et des "/" pour représenter les sauts de ligne.
J'ai fait une routine scannant le dossier et important le contenu de ces fichiers.
Le problème, est que tout se met dans une seule cellule.
Ex :
Contenu du fichier txt n°1 :

Nom Prénom/Age Date_naissance/Hobbies Sport

Je voudrais que lors de l'export, la cellule A1 nom, B1 prénom,
A2= prenom, B2= date
A3=Hobbies, B3=Sport
En fait, je voudrais qu'il fasse l'export en fonction de la tabulation.
$
Merci à vous.

2 réponses

cs_vpoyo Messages postés 363 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 20 avril 2010 6
30 nov. 2005 à 16:12
salut,

je ne connais pas malheuresment vba/excell, mais je pense que l'algo est un truc du style


i = 1


tant qu'il y a encore des données


str = {mon fichier entre le "/" n° i-1 et le "/" n° i }
astr = split(str," ") //espace

A(i) = astr(1) //écrire dans A(i)
B(i) = astr(2)


i = i+1

la fonction split permet de récupérer un tableau de string à partir d'une string et d'un séparateur.
rmrq : on pourrait faire un premier split directement sur le texte de ton fichier avec le caractère "/" mais j'ai peur que ca cause des petits pb de mémoire (si c'est un gros fichier)

En espérant que ca puisse t'aider,

Vincent
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 nov. 2005 à 16:24
Salut
Pour les imports de fichier sous Excel, tu n'as pas le choix :
- Les détections de changements de ligne = retour à la ligne (vbCrLf) : Obligatoire
- Les cellules seront sauvées dans l'ordre des colonnes
Par contre, pour le séparateur, c'est toi qui choisi, mais un seul séparateur, pas de mitigeage entre espace et / possible.
Pour connaître la syntaxe à utiliser, lance l'enregistrement d'une macro et fais, à la main, l'import ou l'export de ton fichier avec les paramètres qui vont bien. Puis stoppe l'enregistrement.
Va ensuite regarder le code de ta macro avec le menu Outils/Macro/Macros/Modifier

Si vraiment tu veux conserver ton format spécial, il te faudra programmer du VBA dans une macro où tu :
- Ouvriras un fichier en écriture : Commande "Open"
- Scruteras chaque ligne : Commande "For-Next"
- Ecriras chaque ligne avec les données : Commande "Print #"
- Fermeras ton fichier : Commande "Close #"

Désolé, je ne connais pas suffisamment la syntaxe VBA pour approfondir.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
Rejoignez-nous