Bonjour à tous,

Depuis un classeur Excel, j'utilise une ADODB Connection pour aller chercher le contenu d'une plage dans un classeur Excel "Source" sur un réseau
Quand mon classeur Excel source n'est utilisé par personne, jusque là, tout va bien.
Mais quand il est ouvert par un utilisateur, ma Connection.Open semble "télécharger" le fichier en local et l'ouvre (?), puis ma requête plante...

J'ai essayé de farcir les commandes avec les options en ReadOnly, mais je sèche.
Merci pour le coup de main, ci-dessous le code que j'utilise :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 = "Planning_" & ctUserName
 
 
Feuille = "Planning 2013$" 
'Chemin complet du classeur fermé
Fichier = ThisWorkbook.Path & "\" & ctBaseCentrale
Set Source = New ADODB.Connection
   With Source
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
            & Fichier & ";Extended Properties=""Excel 12.0;HDR=NO;"""
            .Mode = adModeRead
        .Open
    End With
 
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, adLockReadOnly
Set Rst = Source.Execute("[" & Feuille & Cellule & "]")
Range("A21").CopyFromRecordset Rst
Rst.Close
Source.Close
Set Source = Nothing
Set Rst = Nothing
Set ADOCommand = Nothing
pour info, j'ai vérifié mon MSDAC, il est > 2.5.

Merci,
Sylvain