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
|
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= 1;"""
End Sub
Private Sub UserForm_Initialize()
Dim ConnectCL As Object
Dim Rs As Object
Dim Tbl()
Dim Classeur As String
Dim NomFeuille As String
Dim Plage As String
Dim I As Integer
'chemin du classeur cible
Classeur = "D:\Classeur2.xls"
'cellules à lire
Plage = "A1:A10"
'nom de la feuille où se trouve la plage
NomFeuille = "Feuil1"
'connecxion
ConnectCLasseur ConnectCL, Classeur, Rs
With Rs
.CursorType = 1
.LockType = 3
'récup des valeurs
.Open "SELECT * FROM `" & NomFeuille & "$" & _
Plage & "` ", ConnectCL
'dimensionne le tableau au nombre de valeurs (ici 10)
.MoveFirst
ReDim Tbl(1 To .RecordCount)
.MoveFirst
'rempli le tableau
Do While Not .EOF
I = I + 1
Tbl(I) = .Fields(0).Value
.MoveNext
Loop
End With
'ferme la connexion
ConnectCL.Close
'rempli le combo
ComboBox1.List() = Tbl
Set Rs = Nothing
Set ConnectCL = Nothing
End Sub |
Partager