ADODB - Lecture dans un classeur fermé - Mettre valeur dans une variable
Bonjour,
J'ai lu Lire et écrire dans les classeurs Excel fermés de SilkyRoad. Plus particulièrement la section IV-A.
Le code sous la ligne : Vous pouvez également lire une cellule spécifique, ou une plage de cellules, en utilisant la méthode ADO. fonctionne très bien.
Ce que j'aimerais, c'est qu'au lieu d'envoyer la valeur dans une feuille, je voudrais l'avoir dans la variable de sorti extractionValeurCelluleClasseurFerme
la ligne a changer est : Range("A2").CopyFromRecordset Rst
Voilà le code complet :
Code:
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
| Sub extractionValeurCelluleClasseurFerme()
Dim Source As ADODB.Connection
Dim Rst As ADODB.Recordset
Dim ADOCommand As ADODB.Command
Dim Fichier As String, Cellule As String, Feuille As String
'Adresse de la cellule contenant la donnée à récupérer
Cellule = "B4:B4"
'Pour une plage de cellules, utilisez:
'Cellule = "A4:C10"
Feuille = "Feuil1$" 'n'oubliez pas d'ajouter $ au nom de la feuille.
'Chemin complet du classeur fermé
Fichier = "C:\Base.xls"
Set Source = New ADODB.Connection
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Fichier & ";Extended Properties=""Excel 8.0;HDR=No;"";"
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
Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
Range("A2").CopyFromRecordset Rst
Rst.Close
Source.Close
Set Source = Nothing
Set Rst = Nothing
Set ADOCommand = Nothing
End Sub |
Merci d'avance pour vos réponses