Bonjour à tous,
J'ai besoin de concaténer un certain nombres de fichiers .txt, possédant tous exactement la même structure, dans un nouveau fichier .txt. Tous les fichiers sont sauvegardés dans le même répertoire, et je voudrais que mon fichier final soit également dans ce même répertoire.
J'ai par exemple :
1 fichier .txt contenant "AAAAA"
1 fichier .txt contenant "BBBBB"
Mon objectif est d'obtenir, dans un nouveau fichier texte :
AAAAA
BBBBB
Je souhaite aussi éventuellement compter le nombre de lignes contenues dans le nouveau fichier.
Après quelques essais et recherches sur le net, j'ai bricolé le code suivant :
Le code s'exécute bien, et parcourt le bon nombre de fichiers, mais le fichier généré est...Vide ! Après plusieurs tentatives et modifications, le fichier final reste vierge.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 Option Explicit Sub Compilation_Fichier_Texte() Dim k As Integer Dim Temp As String, T As String Dim Chemin As String, Fichier As String Dim X As Long, FichierCompilation As String Dim Lignes As Long 'Endroit où sont regroupés les fichiers texte à compiler Chemin = "R:\Data\" 'Le nom du fichier où doivent être compilés les fichiers FichierCompilation = "Compilation.txt" On Error Resume Next 'Suppprime le fichier de compilation s'il existe Kill Chemin & FichierCompilation X = FreeFile T = "" Fichier = Dir(Chemin & "*.txt") Do While Fichier <> "" If Fichier <> FichierCompilation Then Open Fichier For Binary Access Read As #X Temp = String(LOF(X), Chr(0)) Get #X, , Temp T = T & Temp k = k + 1 Close #X End If Fichier = Dir() Loop Lignes = Len(T) - _ Len(Application.WorksheetFunction.Substitute(T, Chr(10), "")) T = Left(T, Len(T) - 2) Open Chemin & FichierCompilation For Output As #X Print #X, T Close #X MsgBox k & " fichiers ont été concaténés dans " & FichierCompilation & """ pour un total de " & Lignes & " lignes." End Sub
Je pense qu'il ne manque pas grand chose, est-ce-que quelqu'un aurait la bonté d'âme de m'apporter la petite correction qu'il manque :o) ?
Je précise que j'ai un niveau moyen en vba, mais c'est la première fois que je m'en sers pour manipuler des fichiers texte... Je ne suis pas trop à l'aise avec les méthodes appropriées dans ce cas.
Merci beaucoup d'avance pour votre aide.
Partager