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 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
Sub TestADO()
Dim Tbl() As String
Dim T
Dim Chemin As String
Dim I As Integer
Chemin = "C:\TEST\" '<adapte le chemin du dossier !
Tbl() = RecupFichiers(Chemin)
If Not Not Tbl Then
For I = 1 To UBound(Tbl)
T = Split(Recup(Chemin, Tbl(I)), "-") '<--- adapter le séparateur si ce n'est pas le ;
With ThisWorkbook.Worksheets("Feuil1")
.Cells(.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1).Value = Left(T(0), Len(T(0)) - 10)
.Cells(.Cells(.Rows.Count, 2).End(xlUp).Row + 1, 2).Value = T(1) * 1
End With
Next I
End If
End Sub
Private Sub ConnectCLasseur(ConnectCL As Object, _
Dossier As String, _
Optional Rs)
Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then Set Rs = CreateObject("ADODB.Recordset")
ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Dossier & ";" & _
"Extended Properties=""text;HDR=YES;FMT=Delimited();"""
End Sub
Function Recup(Dossier As String, Fichier As String)
Dim Connect As Object
Dim Rs As Object
Dim Valeur1 As String
Dim Valeur2 As Double
'ouvre une première connexion pour la recherche
ConnectCLasseur Connect, Dossier, Rs
'ouvre pour récupérer les valeurs
With Rs
Call fncWriteSchmIni(Dossier, Fichier)
.Open "SELECT * FROM [" & Fichier & "]", Connect, 3, 1, 1
.MoveLast 'va à la dernière ligne
Valeur1 = .Fields(0).Value
Valeur2 = Abs(.Fields(21).Value)
End With
'ferme la connexion
Connect.Close
Set Connect = Nothing
Set Rs = Nothing
Recup = Valeur1 & "-" & Valeur2
End Function
Function RecupFichiers(Chemin As String) As String()
Dim TableauFichiers() As String
Dim Fichier As String
Dim I As Integer
Fichier = Dir(Chemin & "*.csv")
Do While (Len(Fichier) > 0)
I = I + 1
ReDim Preserve TableauFichiers(1 To I)
TableauFichiers(I) = Fichier
Fichier = Dir()
Loop
RecupFichiers = TableauFichiers()
End Function
Private Sub fncWriteSchmIni(Dossier, Fichier)
' Requires Microsoft Scripting Environment
Dim varFSO As FileSystemObject
Dim varStrm As TextStream
Dim varFL As File
Set varFSO = New FileSystemObject
'Verif Existence fichier
If varFSO.FileExists(Dossier & "\schema.ini") Then varFSO.DeleteFile (Dossier & "\schema.ini")
'create the file in the source directory
Set varStrm = varFSO.CreateTextFile(Dossier & "\schema.ini", True)
'write the specifications needed
varStrm.Write "[" & Fichier & "]" & Chr(13) & Chr(10) & _
"ColNameHeader = False" & Chr(13) & Chr(10) & _
"Format = Delimited(;)"
Set varFL = varFSO.GetFile(Dossier & "\schema.ini")
End Sub |
Partager