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
| Sub CompilationFichiersTexte_ADO()
'
'Nécessite d'activer la référence
'"Microsoft ActiveX Data Objects 2.x Library"
'
Dim Rc As ADODB.Recordset
Dim cn As String, Chemin As String, Fichier As String, x As String
Dim i As Long
'répertoire contenant les fichiers texte
Chemin = "c:\fichiers\list"
'Ouvre un nouveau fichier Texte pour compiler les données
'! attention à ne pas le placer dans le meme repertoire que les autres fichiers...
Open "c:\fichiers\compilation\list.csv" For Output As #1
'--- Création d'un entête: adaptez cette ligne en fonction du nombre
'de colonnes dans les fichiers (10 colonnes dans cet exemple):
Print #1, "champs1;champs2;champs3;champs4;champs5;champs6;champs7;champs8;champs9;champs10" & vbCrLf;
'------------
'boucle sur l'ensemble des fichiers txt
Fichier = Dir(Chemin & "\list_*.csv")
Do While Fichier <> ""
'----- requète pour récupérer le contenu du fichier txt
cn = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"Dbq=" & Chemin & ";Extensions=asc,csv,tab,txt"
Set Rc = New ADODB.Recordset
Rc.Open Source:="SELECT * FROM [" & Fichier & "]", ActiveConnection:=cn
If Not Rc.EOF Then
Print #1, Rc.GetString(, , ";", vbCrLf, "");
End If
Rc.Close
x = ""
'-------------------------
Fichier = Dir
Loop
'Fermeture du fichier Compilation
Close #1
MsgBox "Opération terminée"
End Sub |
Partager