Consolidation fichier txt.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Soleil11

XLDnaute Occasionnel
Bonjour,

Cela fait plusieurs jour que j'embête tout le monde avec cette macro, voici ce que je voudrais modifier :

Cette macro marche très lorsqu'il s'agit consolider de fichier xls, mais lorsque j'essaie de consolider des fichier txt qui se trouve dans le même répertoire ci-dessous (voir macro) et qui sont pas delimité en "tab" mais en "|" cela ne fonctionne pas. Comment puis-je rendre les fichier txt "clean" afin de les importer tous dans ma feuille1 de mon fichier "Consolider fichiers.xls".

En annexe fichier txt exemple.


Sub Consolidation_old_V_4()
Dim Temp As String
Dim Ligne As Long, Ligne2 As Long
Temp = Dir("H:\David Jones\FS10n\4.7" & "\*.txt")
Application.DisplayAlerts = False
Do While Temp <> ""
If Temp <> "Consolider fichiers.xls" Then
Workbooks.Open "H:\David Jones\FS10n\4.7" & "\" & Temp
Ligne2 = Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion.Rows.Count
Workbooks(Temp).Sheets(1).Range("A1").CurrentRegion.Copy
Workbooks("Consolider fichiers.xls").Sheets(1).Activate
Ligne = Sheets(1).Range("A65536").End(xlUp).Row
Range("B" & CStr(Ligne)).Select
ActiveSheet.Paste
Range("A" & CStr(Ligne), "A" & Ligne + Ligne2 - 1).Value = Temp
Workbooks(Temp).Close
End If
Temp = Dir
Loop
Range("A1").Select
Application.DisplayAlerts = True
End Sub

Merci d'avance.

Soleil11😕
 

Pièces jointes

Re : Consolidation fichier txt.

Je vous donne le résultat de mes recherches. Il est évident que l'on peut nettement améliorer le code, mais ça a le mérite d'exister.
Pour le traitement par lot il faut attendre un barbatruc...
En espérant que ce fichier pourra être utile... Je vais faire dormir mes yeux qui en ont bien besoin.
Cordialement

Bonjour,

Cette macro serait parfaite pour une seule structure de fichier en format txt, mais ce qu'il me faudrait c'est le barbatruc qui me permettrait d'importer un lot 123 fichier.txt du même répertoire source en même temps et le consolider dans un fichier xls. Ce serait l'ideale....

Concernant le format :

A priori, les fichiers txt n'aurait le même contenu, on pourrait faire plus simple établir une règle : nettoyage des lignes horizontal "---" et verticale "¦" et éliminer les lignes du haut de chaque tableau qui ne me serve à rien et garder que les titres des tableau et leur contenu. Mais attention, il se peut que certains fichiers txt ait un nombre plus élevé de colomne donc si on peut adapter cette macro à un plusieurs fichiers différents ce serait génial.

Donc pour résumer la situation, il faudrait une macro qui puisse importer un lot ilimité de fichier txt provenant d'un même répertoire en sachant que leur contenu n'aurait pas forcément la même structure en nombre de colomnes.

Pour moi ce serait l'ideale.

Merci d'avance

Soleil11😕
 
Re : Consolidation fichier txt.

Je vous donne le résultat de mes recherches. Il est évident que l'on peut nettement améliorer le code, mais ça a le mérite d'exister.
Pour le traitement par lot il faut attendre un barbatruc...
En espérant que ce fichier pourra être utile... Je vais faire dormir mes yeux qui en ont bien besoin.
Cordialement

Bonjour,

Est-ce que vous parlez de la proposition ci-dessus ? A vrai dire je n'ai pas testé cette macro encore. Est-ce qu'elle peut extraire plusieurs fichiers.txt en même temps ?

Si c'est cette proposition, elle propose un fichier bien précis un chemin d'accès "Chemin_acces\ABH0000017364.TXT" et ceci ne m'arragerai pa trop ce serait d'extraire un lot de fichiers.txt avec des noms différents que je pourrait extraire un seul click.


Workbooks.OpenText Filename:= _
"Chemin_acces\ABH0000017364.TXT", Origin:=-535, _
StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(1, _
1), Array(9, 1), Array(10, 1), Array(68, 1), Array(69, 1), Array(87, 1), Array(88, 1), Array _
(106, 1), Array(107, 1), Array(123, 1), Array(124, 1), Array(134, 1)), _
TrailingMinusNumbers:=True

Ensuite je supprimerais les lignes non-valide:
With Worksheets("ABH0000017364").Range("A1:A65000")
Set c = .Find("", LookIn:=xlValues)
If Not c Is Nothing Then
Do
c.EntireRow.Cells.Delete Shift = xlUp
Set c = .FindNext
Loop While Not c Is Nothing
End If
End With
Cette procédure est à répéter pour chaque caractéres différents de "|" et présent dans la colonne A

Puis suppression des colonnes A; C; E; G; I; K; M;

Après tout ça vous aurez un fichier TXT présentable pour votre traitement.
(Je pense qu'il y a plus simple. Avis aux VBistes)
Cordialement

Soleil11🙂
 
Re : Consolidation fichier txt.

Bonjour à tous


Personne n'a essayé ma proposition à la mode Dos (en 1ère étape avant traitement en VBA )

C'est pourtant plus simple d'ouvrir un seul fichier texte que n fichiers texte non ?

Bonjour JM,

Cela veut dire que je devrais convertir une centaine de fichier.txt à la mode Dos. Ne connaissant pas du tout Dos, pourriez-vous me fournir une procedure plus les nulle comme moi afin de comprendre ou je dois allez mettre le code ?

Merci d'avance.

Soleil11😀
 
Re : Consolidation fichier txt.

Désolé, je jette l'éponge.
Je ne connait pas de solution pour importer par une seule macro un nombre X de fichiers qui n'ont ni le même nombre de champs ni la même structure d'enregisterements.
Par contre je vais suivre avec intéret les propositions qui seront faites...😎
Cordialement
 
Re : Consolidation fichier txt.

Re


J'ai indiqué comment faire dans mon message de 23h47

Il s'agit de regrouper les fichiers *.txt d'un dossier en un seul gros fichier.txt

(Le format du fichier n'est ni altéré ni modifié)

Bonjour,

Si j'ai bien compris cette méthode permet de regrouper 127 fichier.txt sans que ce soit fait manuellement sans les ouvrir tous les uns après les autres et les recopier en un seul et gros fichier.txt. en un seul click ?

Si c'est le cas je veux plus de détails sur la méthode à suivre :

1. Comment je fait pour créer un mégafichier txt d'abord avec ce bon vieux Dos ?

2. Ou est-ce que je dois taper ce code dans l'invite de commande ?

Merci pour votre aide.

Soleil11😕
 
Re : Consolidation fichier txt.

Re

Je répète pour la 3ème fois


Lire mon message de 23h47

Y repérer les lignes commençant par

@


J'écris en français non 😕😕


Bonjour,

J'ai essayer votre methode DOS avec un dossier bat à la racine et cela marche très très bien, mais j'aurais un autre problème plus tard c'est que j'ai besoin du nom des fichiers.txt dans ma consolidation. Lorsque j'utilise votre méthode le nom d'aucun de mes fichiers n'y figurent et pour moi c'est très important. Peux t on trouver une autre solution pour cela ou est il possible de le faire en DOS...

Merci d'avance.

Soleil11😕
 
Re : Consolidation fichier txt.

Re



Encore plus simple (à condition que tous tes fichiers compilés ne dépassent 65536 lignes, sauf si tu es sous Excel 2007)

Lances ce bat

Code:
@copy /A *.txt grosfichier.xls
Ensuite ouvres grosfichier.xls dans Excel

Données/Convertir : Autre :|

Ca le fait non ?



EDITION: All in one
Code:
@copy /A *.txt big.xls
@start big.xls
 
Dernière édition:
Re : Consolidation fichier txt.

Re



Encore plus simple (à condition que tous tes fichiers compilés ne dépassent 65536 lignes, sauf si tu es sous Excel 2007)

Lances ce bat

Code:
@copy /A *.txt grosfichier.xls
Ensuite ouvres grosfichier.xls dans Excel

Données/Convertir : Autre :|

Ca le fait non ?



EDITION: All in one
Code:
@copy /A *.txt big.xls
@start big.xls



Bonjour,

C'est tout à fait ce qu'il faut en terme de rapidité et de consolidation de donnée, mais quand j'ai fait tourner votre nouvea fichier.bat et que j'ai obtenu le gros fichier.xls il manquait le nom des fichiers.txt leur détail ou contenu etait bien là. Pour moi l'élément clé est le nom du fichier il correspondrait à une série de compte de consolidation. Donc, sans le nom du fichier je ne pourrais pas faire de comparaison.

Merci d'avance.

Soleil11😕
 
Re : Consolidation fichier txt.

Re

Qu'a cela ne tienne

Un autre bat

Code:
@dir /B *.txt >nomsfic.000
@ren *.000 001.txt
@copy /A *.txt XLScompil.xls
@start XLScompil.xls
@del 001.txt

Tu récupères ainsi les noms de fichiers mais ...

Bonjour,

Cela marche très bien.

Est-il possible de faire du formatage de fichier avec DOS ?

Vous allez me dire que j'abuse, mais est-il possible de placer le nom des fichier.txt en colomne A en face de chaque ligne correspondant à leur contenu à droite en colomne B C D etc. Comme cela je pourrais faire mes comparaisons par la suite.

Merci d'avance.

Soleil11😛
 
Re : Consolidation fichier txt.

Re


C'était l'objet du mais

Avec une macro, qui remplace les caractères "bizarres" par les noms de fichiers (mais sont-ce les bons ?, sont-ils dans le bon ordre ?)

Nestle Waters NA-Inc

Les caractères en gras indiquent le début d'un fichier.
 
Re : Consolidation fichier txt.

Re


C'était l'objet du mais

Avec une macro, qui remplace les caractères "bizarres" par les noms de fichiers (mais sont-ce les bons ?, sont-ils dans le bon ordre ?)

Nestle Waters NA-Inc

Les caractères en gras indiquent le début d'un fichier.

Bonjour,

J'ai essayé de décripter ce que vous vouliez dire et je pense que cela me dépasse un petit peu.

Mais si l'un de confrère arrive à développer une macro qui pourrait faire l'affaire je suis preneur.

Merci d'avance.

Soleil11😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
924
Réponses
5
Affichages
915
Réponses
4
Affichages
756
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
1 K
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
615
Réponses
15
Affichages
989
Retour