Probleme VBA avec linest
Bonjour à tous,
Je suis débutant en vba et j'aurais besoin d'un coup de main.
En effet après de multiple recherche sur le net, je n'obtiens pas les bon nombres avec la fonction linest sous vba.
enfin j'en obtiens qu'un qui est faux.
La situation : obtenir les coef directeur d'une regression polynomial d'ordre deux à partir de deux colonnes qui peuvent varier .
voici le code que j'ai écrit
Set ylist = Range("D2:D" & j)
Set xlist = Range("C2:C" & j)
Range("G1,H1,I1") = Application.WorksheetFunction.LinEst(ylist, xlist, True, True)
Si quelqu'un pourrait m'aider
Merci d'avance.
Bonjour Carambar182 le forum
un petit fichier avec ce que tu as et ce que tu souhaites obtenir nous permettrait de t'aider car je ne pense pas que tu souhaites obtenir trois cellules avec le même résultat?
a+
papou
non tu as raison, je voudrai juste avoir les coef directeurs de la courbe de tendance, à chaque coef, ça case.
Merci pour la réponse, malheureusement le fichier est trop gros voici le code:
Dim i As Single
Dim j As Single
Dim k As Single
Dim max As Double
Dim def As Double
Dim defi As Double
Dim e As Single
Dim ylist As Range
Dim xlist As Range
Sub copiecollemax()
'
' copiecollemax Macro
' copie colel le max DaN
'
' Touche de raccourci du clavier: Ctrl+w
'
max = 0
def = 80
defi = 81
k = 1
For i = 2 To 1500
If Cells(i, 2) > max Then
max = Cells(i, 2)
j = i
End If
' If ((Cells(i, 2) >= def) And (Cells(i, 2) <= defi)) Then
' e = i
' End If
Next i
While k <= j
k = k + 1
Cells(k, 4) = Cells(k, 2)
Wend
'Cells(5, 14) = max
'Cells(6, 14) = Cells(j, 1)
'Cells(7, 14) = Cells(e, 1)
' Courde N/M
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("'Feuil2'!$C$2:$D" & j)
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets("feuil2").Range("C2:D" & j), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="feuil2"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Energie"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "m"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "N"
Worksheets("feuil2").ChartObjects(1).Chart.SeriesCollection(1) _
.Trendlines.Add(Type:=xlPolynomial, DisplayEquation:=True, DisplayRSquared:=False, Name:="Regression lineaire").Select
ActiveWindow.Visible = False
Range("O2").Value = ActiveChart.SeriesCollection(1).Trendlines(1).DataLabel.Text
End With
Set ylist = Range("D2:D" & j)
Set xlist = Range("C2:C" & j)
Range("G1,H1,I1") = Application.WorksheetFunction.LinEst(ylist, xlist, True, True)
End SubMerci!
bonjour carambar,
En fait la fonction linest (DROITEREG en français) n'est pas celle que tu cherches car elle te donne que les coefficients d'une droite de régression linéaire. Or, tu utilises une régression polynomiale.
Sans trop chercher, je ne connais pas la formule qui te permet d'obtenir ces coefficients mais ce qu'on peut faire c'est extraire ces coefs à partir de l'équation que te donne excel. A toi de me dire si tu veux utiliser cette méthode.
oui en faite je veux extraire les coef du polynome pour les utiliser ensuite, après quelque recherche j'ai vu qu'il fallait utiliser la fonction linest, mais je n'arrive pas a avoir les bon résultats avec.
Merci