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
|
Sub RecupValeurs()
Dim ConnectCL As Object
Dim Rs As Object
Dim Chemin As String
Dim Classeur As String
Dim NomFeuille As String
Dim plage As String
Dim TblClasseur() As String
Dim TblValeur()
Dim I As Integer
Dim J As Integer
'chemin où vont être récupérés les classeurs, à adapter...
Chemin = "E:\Mon Dossier\"
'feuille où s'effectuera la récup, à adapter...
NomFeuille = "Feuil1"
'retourne un tableau contenant tous les classeurs du dossier avec extension .xls, adapter...
TblClasseur = RecupFichiers(ThisWorkbook.Path & "\", "xls", J)
'plage ou s'effectuera la récup, pour une cellule, écrire de la façon suivante : "A1:A1"
plage = "G13:G13"
'si aucun classeur dans le dossier, fin. J est passé en Ref. et sa valeur est ensuite testée
If J = 0 Then
MsgBox "Ancun classeur ne se trouve dans ce dossier !"
Exit Sub
End If
For I = 1 To UBound(TblClasseur)
Classeur = TblClasseur(I)
'connecxion
ConnectCLasseur ConnectCL, Classeur, Rs
ReDim Preserve TblValeur(1 To I)
With Rs
.CursorType = 1
.LockType = 3
.Open "SELECT * FROM `" & NomFeuille & "$" & _
plage & "` ", ConnectCL
TblValeur(I) = .Fields(0).Value
End With
ConnectCL.Close
Next I
'récupération des valeurs stockées dans le tableau
For I = 1 To UBound(TblValeur)
Range("A" & I).Value = TblValeur(I)
Next I
End Sub
Private Sub ConnectCLasseur(ConnectCL As Object, _
Fichier As String, _
Optional Rs)
Set ConnectCL = CreateObject("ADODB.Connection")
If Not IsMissing(Rs) Then
Set Rs = CreateObject("ADODB.Recordset")
End If
ConnectCL.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";" & _
"Extended Properties=""Excel 8.0;HDR=NO;IMEX= 2;"""
End Sub
Function RecupFichiers(Chemin As String, Extension As String, Retour As Integer) As String()
Dim TableauFichiers() As String
Dim Fichier As String
Dim I As Integer
Fichier = Dir(Chemin & "*." & Extension)
Do While (Len(Fichier) > 0)
I = I + 1
ReDim Preserve TableauFichiers(1 To I)
TableauFichiers(I) = Fichier
Fichier = Dir()
Loop
Retour = I
RecupFichiers = TableauFichiers()
End Function |
Partager