Problème de référence à des classeurs fermés

Sylvain7

XLDnaute Nouveau
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 :

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!
 

Vincent63

XLDnaute Nouveau
Re : Problème de référence à des classeurs fermés

Re,

Apparement oui, c'est la bonne syntaxe. Mais où as-tu mis cette macro? Module Général? Module de Feuille?
Si tu ne sais pas donne nous ton classeur anonymisé et sans donnée confidentielle.

A+

Je l'ai mis dans un module de feuille.
 

Pièces jointes

  • Indirect.ext.JPG
    Indirect.ext.JPG
    48.9 KB · Affichages: 33
  • Indirect.ext.JPG
    Indirect.ext.JPG
    48.9 KB · Affichages: 36
  • Indirect.ext.JPG
    Indirect.ext.JPG
    48.9 KB · Affichages: 34

Vincent63

XLDnaute Nouveau
Re : Problème de référence à des classeurs fermés

J'ai mis le code dans un module nommé module1
Pas de changement.
Indirect.ext.JPG
 

Pièces jointes

  • Indirect.ext.JPG
    Indirect.ext.JPG
    62.3 KB · Affichages: 28
  • Indirect.ext.JPG
    Indirect.ext.JPG
    62.3 KB · Affichages: 30
G

Guest

Guest
Re : Problème de référence à des classeurs fermés

Re,

Dernière intervention si tu ne te décides pas à nous donner un classeur exemple avec la macro et un classeur source de données anonymisés.

A+
 

Vincent63

XLDnaute Nouveau

Pièces jointes

  • Essai.xlsm
    16.3 KB · Affichages: 19
  • Essai.xlsm
    16.3 KB · Affichages: 18
G

Guest

Guest
Re : Problème de référence à des classeurs fermés

Re,

Je viens de tester la macro de ton Essai.xlsm et cela fonctionne chez moi. Donc c'est certainement la source (fichier à lire) qui pose problème. Ne serait-il pas protégé? As-tu les droits d'accès sur son emplacement?

Comme tu ne dis pas la finalité de ton projet, nous ne pouvons pas t'apporter beaucoup d'autres solutions.
Si ce n'est que pour lire une cellule, il suffit d'ouvrir les deux fichiers, dans le fichier destination sélectionner la cellule qui recevra la donnée taper = dans la barre de formule, sélectionner la cellule source, valider. Ensuite tu peux fermer le classeur source, cela créera un lien entre les deux.

A+
 
Dernière modification par un modérateur:

st007

XLDnaute Barbatruc
Re : Problème de référence à des classeurs fermés

Quand tu ouvres, çà donne quoi

chez moi

#NULL car le dossier n'existe pas bien sure

ne mets pas de ..........\ à la fin du chemin
 

Pièces jointes

  • Essai (1).xlsm
    15.8 KB · Affichages: 23
  • Essai (1).xlsm
    15.8 KB · Affichages: 21
  • Essai (1).xlsm
    15.8 KB · Affichages: 25
Dernière édition:
G

Guest

Guest
Re : Problème de référence à des classeurs fermés

Re,

Comme le dis st007 si le Dossier n'existe pas! Mais peut-être y a-t-il d'autre possibilité suivant le projet final.
Mais comme tu sembles avare d'information, nous ne pouvons te donner beaucoup plus de solutions. Lien?

A+
 

Discussions similaires

Réponses
2
Affichages
280

Statistiques des forums

Discussions
312 370
Messages
2 087 690
Membres
103 640
dernier inscrit
So pizza