Bonsoir Guillaume, Le 02.02.2009 14:26, Guillaume Durieux a écrit : > Bonjour Jean Baptiste, > > Je suis pas bien sur d'avoir tout compris de ce que tu m'a expliqué, mais si > tu > penses que la macro que tu avais crée il y a quelque temps peut me servir et > bien je suis preneur.
Voici le code de la macro : function interpoler (X as variant, Y as variant, T as double) ' on verifie si on a bien des ARRAY if NOT (IsArray( X ) AND IsArray( Y )) then Err = 519 interpoler = "#VALUE" else Dim debut as integer, fin as integer, length as Integer Dim result As Double debut = LBound(X) fin = UBound(X) length = fin-debut Dim X1 as double, X2 as double, Y1 as double, Y2 as double 'on suppose que X est trié par ordre croissant If (t < X(debut,1)) then 'avant on prend la première valeur interpoler = Y(debut,1) Exit function End if If (t >= X(fin,1)) then 'après on garde la dernière valeur interpoler = Y(fin,1) Exit function End if For i = 0 to length-1 If (X(debut+i,1) <= t AND X(debut+i+1,1) > t) then X1 = X(debut+i,1) X2 = X(debut+i+1,1) Y1 = Y(debut+i,1) Y2 = Y(debut+i+1,1) Exit For End if Next 'interpolation linéaire interpoler = y1 + (y2-y1)/(x2-x1)*(t-x1) end if End Function > > Petite question subsidiaire : si ça fonctionne avec une macro, est ce que la > macro doit être copiée sur tous les ordinateurs susceptibles de faire tourner > le > fichier calc ? Oui et non : il faut enregistrer la macro dans le fichier Calc, pour qu'il puisse l'utiliser. Et gérer la sécurité des macros (Outils > Options > OOo > sécurité). un exemple : http://www.cijoint.fr/cjlink.php?file=cj200902/cijHCNfuDt.ods Bonne soirée JBF -- Seuls des formats ouverts peuvent assurer la pérennité de vos documents. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@fr.openoffice.org For additional commands, e-mail: users-h...@fr.openoffice.org