Function PolyACEq(ByVal MatX As Range, ByVal MatY As Range, ByVal MatXC As Range, ByVal MatYC As Range, ByVal N As Long, Optional ByVal R As Variant = 3)
'-> apllication de PolyAC
'Traitement de l'arrondi
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
Dim LC As Long, L2C As Long, CC As Long, C2C As Long
LC = MatXC.Rows.Count
L2C = MatYC.Rows.Count
CC = MatXC.Columns.Count
C2C = MatYC.Columns.Count
'Erreur de taille
If C > 1 Or C2 > 1 Or CC > 1 Or C2C > 1 Then PolyACEq = "#COLONNE!": Exit Function
If l <> L2 Or LC <> L2C Then PolyACEq = "#LIGNE!": Exit Function
If LC > N + 1 Or l < N + 1 - LC Then PolyACEq = "#DEGRE!": Exit Function
Dim I As Long, P As Double
For I = 1 To N + 1
P = WorksheetFunction.Round(PolyAC(MatX, MatY, MatXC, MatYC, N, I), R)
If P > 0 Then PolyACEq = PolyACEq & " +"
If P <> 0 Then
Select Case P
Case Is <> 1
Select Case I
Case Is < N
PolyACEq = PolyACEq & " " & P & "*X^" & N - I + 1
Case N
PolyACEq = PolyACEq & " " & P & "*X"
Case N + 1
PolyACEq = PolyACEq & " " & P
End Select
Case Else
Select Case I
Case Is < N
PolyACEq = PolyACEq & " " & "X^" & N - I + 1
Case N
PolyACEq = PolyACEq & " " & "X"
Case N + 1
PolyACEq = PolyACEq & " " & P
End Select
End Select
End If
Next I
End Function