Bon voilà, je suis un quasi débutant dans la programmation VBA et dans l'utilisation d'access. Voilà mon problème:
J'ai une base de données de vis et de couple de serrage correspondant. Afin d'effectuer des calculs (déformation, contraintes,...) je génère une requete sous access afin de récuperer le couple de serrage pour la vis correspondante que j'importe ss excel come suit:
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
 
Function Calcul_Cs(Optional ByVal Diametre_vis As Double, _
                   Optional ByVal Classe As String, _
                   Optional ByVal Coef_Frottement As Double) As Integer
 
 
' Double 1 : Diametre de la vis
' String : Classe de la vis
' Double 2: Coefficient de frottement du montage
 
    Dim rec As New ADODB.Recordset
    Dim strSQL As String
 
    'Redaction du SQL
    strSQL = "SELECT Serrage.Cs" & _
            "FROM Vis INNER JOIN (Frottement INNER JOIN (Classe INNER JOIN Serrage ON Classe.Classe = Serrage.CorresClasse) ON Frottement.[Coefficient de frottement] = Serrage.CorresFrot) ON Vis.[Diametre (mm)] = Serrage.CorresDia WHERE 1=1"
 
    'Insertion de la variables de recherche "Diametre"
    If Diametre_vis > 0 Then
        strSQL = strSQL & " And ([Vis]![Diametre (mm)] = " & Diametre_vis & ")"
    End If
 
    ' Insertion de la variables de recherche "Classe"
    If Len(Classe) > 0 Then
        strSQL = strSQL & " And ([Classe]![Classe] ='" & Classe & "')"
    'End If
 
    'Insertion de la variables de recherche "Coefficient de frottement"
    If Coef_Frottement > 0 Then
       strSQL = strSQL & " And ([Frottement]![Coefficient de frottement] = " & Coef_Frottement & ")"
    End If
 
    Dim rst As New ADODB.Recordset   
    rst.Open strSQL, cnx
    rst.MoveFirst 
    Calcul_Cs = CDbl(rst("Cs"))
    rst.Close
    Set rst = Nothing
 
End Function
Sous excel je rentre: =calcul_cs(B25;B26;B27) avec B25=12 (diametre)
B26=5-5 (classe donc texte)
B27=0,1

Et là mon problème est la réponse d'Excel: #VALEURS !!!!

D'où peut venir mon erreur???