Bonjour a tous,
Je cherche a utiliser la fonction excel Intercept dans access, et je n'y arrive pas. J'ai beaucoup cherche sur les forums et trouve des codes mais j'arrive pas a correctement les appliquer a mon cas.
En fait, ce que je cherche a faire, c'est creer une fonction Intercept dans access, et creer une fonction pour recuperer mon resultat access dans excel.

J'ai une table 'Parametres' avec trois champs: un champ 'Date', un champ 'Parametre 1' et un champ 'Parametre 2'.
Dans Access j'ai active la reference Microsoft Excel 14.0 Object Library, et j'ai cree un module avec le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
Function xlIntercept(Param1 As Double, Param2 As Double)
    Dim obj As Excel.Application
    Set obj = CreateObject("Excel.Application")
    xlIntercept = Excel.WorksheetFunction.Intercept(Param1, Param2)
    obj.Quit
    Set obj = Nothing
End Function
Dans Excel, j'ai ensuite insere le code suivant dans un module:
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
 
Public Function Retrieve1(Optional ByVal Val01 As Date)
' Connexion et ouverture de la base de données
        Dim cnx As ADODB.Connection
        Dim strPath As String
        Set cnx = New ADODB.Connection
        strPath = ThisWorkbook.Path & "\Revisit.accdb"
    '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
 
' Définition de la Query SQL
        Dim strSQL As String
        Dim rst As New ADODB.Recordset
        strSQL = "SELECT xlIntercept([Parametre 1],[Parametre 2]) AS [Total 1] FROM [Parametres]"
    ' Ouverture de la Query
        rst.Open strSQL, cnx
        rst.MoveFirst
 
' Définition de la Function excel
    Retrieve1 = rst("Total 1")
 
' Fermeture et libération des objets
    rst.Close
    Set rst = Nothing
End Function
Dans n'importe quelle cellule d'une feuille excel, j'ai place la formule suivante:
=Retrieve1().
et j'ai une erreur #Value!.
Je precise que la variable 'Val01' As Date, est cense etre optionnel et que ca me sert a filtrer selon une date. mais peu importe, avec ou sans, j'arrive pas a faire fonctionner cette fonction.
au fait, je suis nouveau sur le forum, donc n'hesitez pas a m'apprendre les regles de base (genre si le topic est pas place au bon endroit)...
Merci a tous,
Arnaud