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 :
La variable StrPath se situe en cellule A120 et a pour valeur : "D:\Users\adauchet\Documents\00 - Réel\2016\2016.accdb"
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
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 :
J'ai copié collé la valeur de la cellule A120 dans le code ci dessous et le boléan a renvoyé vrai.
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
Du coup je suis bloqué dans la construction et la continuation de mon code
Merci de votre aide
Partager