Bonjour,
J'essaye de lire des données depuis des classeurs fermés afin de les regrouper dans un seul classeur. J'ai dans un premeir temps essayer les fonctions INDIRECT et CONCATENER afin d'avoir une référence variable mais INDIRECT ne marche que si les classeurs sont ouverts.
Je me suis donc tourné vers une fonction personnelle LireCellule_ClesseurFerme() trouvée sur le net :
J'ai bien coché la référence Microsoft ActiveX Data Objetcs Library et vérifié mes arguments mais la fonction me renvoi l'erreur #VALEUR. Encore mieux, la fonction marche lorsque le classeur source est ouvert!
Pour info, je suis sur le réseau de la société, donc mon chemin est du type \\serveur\MonService\MonDossierPerso et j'utilise Excel 2007.
Quelqu'un aurait-il une explication pour m'aider à avancer?
Merci d'avance!
J'essaye de lire des données depuis des classeurs fermés afin de les regrouper dans un seul classeur. J'ai dans un premeir temps essayer les fonctions INDIRECT et CONCATENER afin d'avoir une référence variable mais INDIRECT ne marche que si les classeurs sont ouverts.
Je me suis donc tourné vers une fonction personnelle LireCellule_ClesseurFerme() trouvée sur le net :
Code:
Function LireCellule_ClasseurFerme( _
Chemin As String, _
Fichier As String, _
Feuille As String, _
Cellule As Variant) As Variant
Application.Volatile
Dim Source As Object, Rst As Object, ADOCommand As Object
Dim Cible As String
Feuille = Feuille & "$"
Cible = Cellule.Address(0, 0, xlA1, 0) & ":" & _
Cellule.Address(0, 0, xlA1, 0)
Set Source = CreateObject("ADODB.Connection")
Source.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Chemin & "\" & Fichier & _
";Extended Properties=""Excel 8.0;HDR=No;"";"
Set ADOCommand = CreateObject("ADODB.Command")
With ADOCommand
.ActiveConnection = Source
.CommandText = "SELECT * FROM [" & Feuille & Cible & "]"
End With
Set Rst = CreateObject("ADODB.Recordset")
Rst.Open ADOCommand, , adOpenKeyset, adLockOptimistic
Set Rst = Source.Execute("[" & Feuille & Cible & "]")
LireCellule_ClasseurFerme = Rst(0).Value
Rst.Close
Source.Close
Set Source = Nothing
Set Rst = Nothing
Set ADOCommand = Nothing
End Function
J'ai bien coché la référence Microsoft ActiveX Data Objetcs Library et vérifié mes arguments mais la fonction me renvoi l'erreur #VALEUR. Encore mieux, la fonction marche lorsque le classeur source est ouvert!
Pour info, je suis sur le réseau de la société, donc mon chemin est du type \\serveur\MonService\MonDossierPerso et j'utilise Excel 2007.
Quelqu'un aurait-il une explication pour m'aider à avancer?
Merci d'avance!