Probleme fonction - VB/VBA/VBS - Programmation
Marsh Posté le 29-06-2017 à 17:55:45
Bonjour,
« cela ne fonctionne pas (il considere que milieu=0) »
C'est effectivement parce que milieu = 0 !!!!
Exécute le code en pas à pas tu verras.
Marsh Posté le 29-06-2017 à 17:58:06
mais c'est bien cela qui est bizarre car si fais
range("A1" ).value = milieu ....je n'ai pas 0!!
Marsh Posté le 29-06-2017 à 17:31:19
Bonjour....j ai beau chercher je ne trouve pas
Je redige une fonction pour effectuer une somme simple
Function sum(tabl() As Double) As Double
For i = 0 To UBound(tabl)
sum = sum + tabl(i)
Next
End Function
J'en redige une autre qui soustrait un chiffre case apres case..... disons qu on extrait 10 de la serie 5 7 10 15 ....ca nous donne 0 2 10 15
Function spread(tabl() As Double, p As Double) As Double()
Dim t As Double
Dim i As Integer
ReDim tabl2(UBound(tabl)) As Double
t = p
For i = 0 To UBound(tabl)
'tabl2(i) = p
If tabl(i) = 0 Then
tabl2(i) = 0
ElseIf tabl(i) <= t Then
tabl2(i) = 0
t = t - tabl(i)
ElseIf tabl(i) >= t And t >= 0 Then
tabl2(i) = tabl(i) - t
t = 0
Else
tabl2(i) = tabl(i)
End If
Next
spread = tabl2
End Function
et enfin je fais une derniere fonction(ci dessous) ....peut importe ce qu elle fait en realite.....le probleme est quand je fais appel a "tabl4(i) = spread(tabl3(), milieu)(i)" qui doit executer la fonction "spread" cela ne fonctionne pas (il considere que milieu=0) mais je remplace milieu par un vrai chiffre, 5 par ex, cela fonctionne parfaitement ....je suis un peu perdu .....merci pour votre aide
Function active_module_matrix_spread(tabl() As Double) As Double()
Dim tabl2(18) As Double
Dim tabl3(18) As Double
Dim tabl4(18) As Double
Dim g As Integer
Dim i As Integer
Dim milieu As Double
g = 0
For h = 1 To 18
tabl2(h) = tabl(h) - tabl(h - 1)
Next
For i = 0 To 18
tabl3(i) = tabl2(i) * 12
Next
milieu = sum(tabl3()) / 2)
For i = 0 To 18
tabl4(i) = spread(tabl3(), milieu)(i)
Next