Recopier en boucle les infos dans *.txt sur excel

fred80

XLDnaute Nouveau
Bonjour à tous,

Je suis débutant en macro sur excel, pourriez-vous m'aider à complèter ceci svp:
J'ai besoin de récupérer des informations qui sont sur plusieurs fichiers *.txt
Ces fichiers *.txt sont tous dans un même répertoire (des centaines...)
et sont tous de formes identiques (les positions des données à extraire sont identiques)
J'aimerais récupérer 9 informations dans chacun de ces fichiers *.txt (non pas l'intégralité du fichier)

Les différentes étapes que je fais pour l'instant "à la main":
Depuis le fichier excel "exemple.xls" dont je veux recopier les infos:
1- Ouvrir un fichier *.txt, avec les options de préformatage (dont le séparateur = espace)
2- Recopier les infos de chacune des 9 cellules (A-B-C-D-E-F-G-H-I) du fichier "monfichier.txt"
dans mon fichier excel "exemple.xls" sur une même ligne (voir image)"
3- Fermer le fichier *.txt une fois la copie terminée puis ouvrir le suivant

Chaque fichier *.txt est recopié sur une seule ligne, le fichier *.txt suivant sur la ligne n+1
et ainsi de suite jusqu'au dernier fichier du répertoire.

Merci beaucoup à tous.

qh3fiDU.jpg
 

tototiti2008

XLDnaute Barbatruc
Re : Recopier en boucle les infos dans *.txt sur excel

Bonjour fred,

Bienvenue :)
Je suppose que tes fichiers textes ont un nombre de lignes variables
Par conséquent, tes données à importer ne seront pas toujours en B1, C1, B5, E5, B9, E9, C13, D13, E13 (ou bien si ?)
Quels sont les critères qui te permettent d'identifier les bonnes lignes ?
 

fred80

XLDnaute Nouveau
Re : Recopier en boucle les infos dans *.txt sur excel

Bonjour,


L'ordre des lignes n'a pas d'importance
et le format est strictement identique, seul varie la valeur de ces cellules.

J'aimerais connaitre les commandes suivant :
- ouvrir le fichier txt correctement (le séparateur "espace" est très important)
- copier/coller les cellules d'un fichier excel à un autre fichier
- faire cela en boucle sur tout le répertoire

Merci d'avoir répondu si vite à ma demande.
 

tototiti2008

XLDnaute Barbatruc
Re : Recopier en boucle les infos dans *.txt sur excel

Bonjour,

Je suppose que tes fichiers textes ont un nombre de lignes variables
Par conséquent, tes données à importer ne seront pas toujours en B1, C1, B5, E5, B9, E9, C13, D13, E13 (ou bien si ?)

L'ordre des lignes n'a pas d'importance
et le format est strictement identique, seul varie la valeur de ces cellules.

Pas convaincu que ça réponde vraiment à ma question

Edit : peux-tu joindre ton fichier txt exemple ?
 
Dernière édition:

fred80

XLDnaute Nouveau
Re : Recopier en boucle les infos dans *.txt sur excel

Bonjour à tous,

Voici un code proposé par ""gmb"" que je le remercie grandement.
Ce code répond bien à ma demande.
Je vous le partage ici pour avoir vos avis.


"Option Explicit

Dim chemin, nomFichier, f, classeur, i, lgn, adrOr, flag

Sub Importer()

Application.ScreenUpdating = False
If flag = 1 Then
Range(""A1"").CurrentRegion.Offset(1, 0).ClearContents
End If
chemin = ThisWorkbook.Path & ""\""
nomFichier = Dir(chemin & ""*.*"")
Do While nomFichier <> """"
Set f = ActiveSheet
lgn = f.Range(""A1"").CurrentRegion.Rows.Count + 1
If nomFichier <> ThisWorkbook.Name Then
Set classeur = Workbooks.Open(chemin & nomFichier)
For i = 1 To 9
adrOr = Choose(i, ""$B$1"", ""$C$1"", ""$B$5"", ""$E$5"", ""$B$9"", ""$E$9"", ""$C$13"", ""$D$13"", ""$E$13"")
f.Cells(lgn, i).Value = Range(adrOr)
Next i
classeur.Close False
End If
nomFichier = Dir
Loop
ActiveSheet.Range(""$A$1"").CurrentRegion.RemoveDuplicates Columns:=Array(2, 3), Header:=xlYes
End Sub"

___________________
mes données sur txt:

"112322 A B blabla bla
blabla bla

blabla bla
FRA C ey 1234 D


blabla blablabla blablabla blablabla blablabla bla
12 E 22 33 F

blabla bla

020 12345678 G H I


blabla bla


blabla blablabla bla
"
 

Discussions similaires

Réponses
11
Affichages
462

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG