Interpolation linéaire

Bonjour à tous,

Je cherche à, en partant d'une valeur donnée, faire l'interpolation linéaire dans le tableau correspondant : pour les adeptes de meca flux, pour une valeur de Re je dispose d'un tableau (Cz,Cx).

Je rentre dans ma fonction le Re et le Cz et elle doit me retourner le Cx correspondant.

Je vous joins un fichier test pour que ca soit plus clair! Le code VBA que j'ai fait ne marche évidemment pas ( la fonction interpol marche, c'est la interpol2 qui coince) :

Function Interpol(x, xvalues, yvalues)
x1 = Application.WorksheetFunction.Index(xvalues, Application.WorksheetFunction.Match(x, xvalues, 1))
x2 = Application.WorksheetFunction.Index(xvalues, Application.WorksheetFunction.Match(x, xvalues, 1) + 1)
y1 = Application.WorksheetFunction.Index(yvalues, Application.WorksheetFunction.Match(x, xvalues, 1))
y2 = Application.WorksheetFunction.Index(yvalues, Application.WorksheetFunction.Match(x, xvalues, 1) + 1)
Interpol = y1 + (y2 - y1) * (x - x1) / (x2 - x1)

End Function

Function Interpol2(x, y)
Dim a As Range

Set a = Range("B2:G2").Find(x)
x1 = Range("a.Offset(1, 0): a.Offset(10, 0)")
x2 = Range("a.Offset(1, 1): a.Offset(10, 1)")

Interpol2 = Interpol(y, x1, x2)

End Function

Merci beaucoup

37test.xlsm (16.11 Ko)

bonjour,

une correction de ta syntaxe.

Function Interpol2(x, y)
Dim a As Range

Set a = Range("B2:G2").Find(x)

Set x1 = a.Offset(1, 0).Resize(9, 1)
Set x2 = a.Offset(1, 1).Resize(9, 1)
Interpol2 = Interpol(y, x1, x2)

End Function

Oh super merci beaucoup !

Rechercher des sujets similaires à "interpolation lineaire"