Function PolyAEq(ByVal MatX As Range, ByVal MatY As Range, ByVal N As Long, Optional ByVal R As Variant = 3)
'Calcul puis écriture de l'équation polynomiale définie
'par la methode des moindres carrés
'par les points contenus dans MatX et MatY
'Identique à Poly_calcul mais renvoi uniquement la formule
'r=arrondi des coefficients
'!attention! trop peu de décimale efface le coefficient

'Traitement de l'index
R = CLng(R)

'Tailles matrices
Dim l As Long, L2 As Long, C As Long, C2 As Long
l = MatX.Rows.Count
L2 = MatY.Rows.Count
C = MatX.Columns.Count
C2 = MatY.Columns.Count

'Erreur de taille
If C > 1 Or C2 > 1 Then PolyAEq = "#COLONNE!": Exit Function
If l <> L2 Then PolyAEq = "#LIGNE!": Exit Function
If l < N - 1 Then PolyAEq = "#DEGRE!": Exit Function

Dim I As Long, P As Double

For I = 1 To N + 1
    P = WorksheetFunction.Round(PolyA(MatX, MatY, N, I), R)
    If P > 0 Then PolyAEq = PolyAEq & " +"
    If P <> 0 Then
    Select Case P
            Case Is <> 1
                Select Case I
                Case Is < N
                PolyAEq = PolyAEq & " " & P & "*X^" & N - I + 1
                Case N
                PolyAEq = PolyAEq & " " & P & "*X"
                Case N + 1
                PolyAEq = PolyAEq & " " & P
                End Select
            Case Else
                Select Case I
                Case Is < N
                PolyAEq = PolyAEq & " " & "X^" & N - I + 1
                Case N
                PolyAEq = PolyAEq & " " & "X"
                Case N + 1
                PolyAEq = PolyAEq & " " & P
                End Select
    End Select
    End If
Next I
  
End Function