Bonjour,

J'essaye de commencer à écrire un code qui me permettra de récupérer la ou les valeurs d'un champ d'une table ou d'une requête et de l'inscrire dans une cellule Excel.

Pour commencer ce code, j'ai eu recours au code de de Charles A. dont en voici l'extrait que j'ai adapté à mon besoin :

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
37
38
39
40
41
Public cnx As ADODB.Connection
 
Sub auto_open()
    ' La sub auto_open possède la propriété d'être automatiquement
    '  exécutée à l'ouverture du classeur Excel
    '  à l'identique : auto_close est exécutée sur la fermeture
    Dim strPath As String
 
    ' Seule contrainte une cellule nommée strPath
    '  doit être présente dans le classeur et
    '  renvoyer sur le chemin de l'appli
    '  en l'occurence
    Application.Goto Reference:="StrPath"
 
    strPath = ActiveCell
 
    ' Nous testons si le fichier est accessible
    If Len(Dir(strPath)) > 0 Then
        ' Déclaration de la variable de connexion
        Set cnx = New ADODB.Connection
 
        ' Connexion à la base
        ConnectDB cnx, strPath
    Else
        MsgBox "La base n'a pas pu être trouvée" & vbCrLf & _
                strPath & vbCrLf & _
                "n'est pas un chemin valide.", vbCritical + vbOKOnly
    End If
 
End Sub
 
Sub ConnectDB(ByRef cnx As ADODB.Connection, ByVal strPath As String)
 
    'Définition du pilote de connexion
    cnx.Provider = "Microsoft.ACE.OLEDB.12.0"
    'Définition de la chaîne de connexion
    cnx.ConnectionString = strPath
    'Ouverture de la base de données
    cnx.Open
 
End Sub
La variable StrPath se situe en cellule A120 et a pour valeur : "D:\Users\adauchet\Documents\00 - Réel\2016\2016.accdb"

A l'exécution du code, j'ai l'erreur exécution 52 qui se manifeste

Pour vérifier que j'ai bien libellé le chemin j'ai eu recours au code suivant :
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
Sub TesteSiFichierExiste()
 
Dim MonFichier As String
 
MonFichier = "D:\Users\adauchet\Documents\00 - Réel\2016\2016.accdb"
 
    If FichierExiste(MonFichier) = True Then
        MsgBox "Le fichier existe..."
    Else
        MsgBox "Le fichier n'existe pas..."
    End If
 
End Sub
 
 
Public Function FichierExiste(MonFichier As String)
 
   If Len(Dir(MonFichier)) > 0 Then
      FichierExiste = True
   Else
      FichierExiste = False
   End If
End Function
J'ai copié collé la valeur de la cellule A120 dans le code ci dessous et le boléan a renvoyé vrai.

Du coup je suis bloqué dans la construction et la continuation de mon code

Merci de votre aide