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 55 56 57 58 59
|
Sub CompilationFichiersTexte_ADO()
'
'Ce programme génère un fichier txt qui compile tous les fichiers textes envoyés par Romain Valiente,
'on peut ensuite donc utiliser le bouton maj_recap de Géraldine sur ce fichier pour récupérer toutes les données du 18/02/2019 au 30/05/2019
'Nécessite d'activer la référence "Microsoft ActiveX Data Objects 2.0 Library : dispo dans outils : références"
'
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 = "N:\40 - Prévisions et Activité\01 - Météo\01 - Données Météo\Météo Réalisée\Données Réalisé feb-mai"
'Ouvre un nouveau fichier Texte pour compiler les données
'! ATTENTION à ne pas le placer dans le meme repertoire que les autres fichiers...
Open "N:\40 - Prévisions et Activité\01 - Météo\01 - Données Météo\Météo Réalisée\compilation.txt" For Output As #1
'--- Création d'un entête: adaptez cette ligne en fonction du nombre
'de colonnes dans les fichiers (2 colonnes dans cet exemple):
'Print #1, "Champ1;Champ2" & vbCrLf;
'Pas d'entête à créer ici car on écrit à partir de la ligne 28000...
'------------
'boucle sur l'ensemble des fichiers txt
Fichier = Dir(Chemin & "\*.txt")
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
'--- recuperation de la première ligne
For i = 0 To Rc.Fields.Count - 1
x = x & Rc.Fields(i).Name & ";"
Next i
Print #1, Left(x, Len(x) - 1) & vbCrLf;
'---
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