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
| 'Création de la procédure, ici "Sub" est une routine
Sub extractionValeurCelluleClasseurFerme()
'Déclaration des variable faisant appellent à la bibliothèque ADOBB
Dim Source As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim ADOCommand As ADODB.Command
'Déclaration des variable "Fichier,Cellule,Feuille comme étant des chaines de charactères
Dim Fichier As String, Cellule As String, Feuille As String
'instanciation de la variable Feuille; n'oubliez pas d'ajouter $ au nom de la feuille du fichier fermé.
Feuille = "Feuil1$"
'Chemin complet du classeur fermé
Fichier = "E:\BAGNEUXTEST.xls"
'Connection avec le fichier fermé
Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;"";"
'adaptation de ton code
'Set Cn = New ADODB.Connection
'Cn.Open "Provider = Microsoft.Jet.OLEDB.4.0;data source=" & Fichier & ";extended properties=""Excel 8.0;HDR=Yes"";"
ReqSQL = "SELECT CENTRE='BAGNEUX', PS='MASS' FROM [" & Feuille & "] WHERE Date='2008-12-10'"
Set Rst = New ADODB.Recordset
Set Rst = Cn.Execute(ReqSQL)
'Adresse de la cellule contenant la donnée à récupérer
'Cellule = "B4:B4"
'Pour une plage de cellules, utilisez:
Cellule = "a1000:ae3000"
Set ADOCommand = New ADODB.Command
With ADOCommand
.ActiveConnection = Source
.CommandText = "SELECT * FROM [" & Feuille & Cellule & "]"
End With
Set Rst = New ADODB.Recordset
Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
'La méthode CopyFromRecordset permet d'afficher le résultat
'du Recordset dans la feuille de calcul, à partir de la cellule spécifiée
Worksheets("Feuil3").Range("A1").CopyFromRecordset Rst
'Met à jour la valeur du "Champ4" si le "Champ2" correspond à la variable "leNom" ; ça ne marche pas
'RstSQL = "UPDATE [Worksheets(Feuil3)]SET " & _
"A7 = " & 2 & " WHERE A7 = '" & A & "'"
'Exécution de la requête
Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
Rst.Close
Source.Close
Set Source = Nothing
Set Rst = Nothing
Set ADOCommand = Nothing
End Sub |
Partager