Bonjour,
dans ton programme ,xi prend la valeur 7 (après être passé dans la 2ème boucle for each cell) et non la valeur 8 comme tu sembles t'y attendre. et donc le résultat est bien correct sur base d'une valeur xi=7.
essaie ceci, si j'ai bien compris ce que tu essayais de faire
Sub inter()
Dim cell As Range
Dim a
Dim x1, x2, y1, y2
Dim xi#, yi#
Sheets("Feuil1").Select
a = Range("C3")
xi = Range("C4")
For Each cell In Sheets("Feuil2").Range("B1:F1")
If (cell.Value) = a Then
a = cell.Column - 1 'on détermine la colonne qui correspond à la t° demandée
rep1 = cell.Offset(4, 0)
Exit For
End If
Next
For Each cell In Sheets("Feuil2").Range("A2:A7")
If (cell.Value) < xi Then
x1 = cell.Offset(0, 1) 'on prend la valeur x juste inférieure à la valeur recherchée
y1 = cell.Offset(0, a) ' on prend la valeur y associée
ElseIf (cell.Value) > xi Then
x2 = cell.Offset(0, 1) ' on prend la valeur x juste supérieure à la valeur recherchée
y2 = cell.Offset(0, a) 'on prend la valeur y associée
Exit For
End If
Next
yi = y1 + (y2 - y1) * ((xi - x1) / (x2 - x1)) 'marche
Sheets("Feuil1").Select
Range("G9") = x1
Range("G10") = x2
Range("G11") = y1
Range("G12") = y2
Range("C7") = yi
End Sub