Function IntpoLinT(ByVal X As Double, ByVal TXY, _
Optional ByVal C2 As Long = 2) As Double
Rem. ——— Interpolation linéaire entre deux valeurs données dans une table.
' Paramètres :
' X: La valeur dont on veut calculer l'interpolation.
' TXY: Plage rectangulaire ou tableau de 2 colonnes.
' Colonne 1: Valeurs seuils de X.
' Colonne C2: Valeur Y correspondantes de la fonction.
' Remarque: une valeur X hors plages relèvera des plages extrêmes définies.
' La première et dernière valeurs X ne sont donc pas de vrais seuils,
' puisque les pentes des extrêmes sont prolongées au delà si nécessaires.
' Notamment s'il n'y a que 2 XY, la fonction sera pour toute valeur
' une droite passant par ces 2 points.
Dim L As Long
If TypeOf TXY Is Range Then TXY = TXY.Value
L = UBound(TXY, 1) - 1
Select Case X
Case Is < TXY(1, 1): L = 1
Case Is < TXY(L, 1): L = WorksheetFunction.Match(X, WorksheetFunction.Index(TXY, 0, 1))
End Select
IntpoLinT = IntpoLin(X, TXY(L, 1), TXY(L, C2), TXY(L + 1, 1), TXY(L + 1, C2))
End Function
Function IntpoLin(ByVal X As Double, ByVal X1 As Double, ByVal Y1 As Double, _
ByVal X2 As Double, ByVal Y2 As Double) As Double
IntpoLin = Y1 + (Y2 - Y1) * (X - X1) / (X2 - X1)
End Function