garnote
XLDnaute Junior
Bonjour à tous et à toutes,
Voici ma fonction et ma macro:
Comme je veux faire mes tests (Essai) sur des milliers de valeurs, il me faudrait faire une boucle pour "remplir" y avec Syracuse, mais quand je tente le coup, ça bogue. Probablement dû à une mauvaise déclaration de variables. J'ai un peu perdu la main depuis le temps lointain d'Excelabo! Vous avez des suggestions?
Serge
Voici ma fonction et ma macro:
Code:
Function Syracuse(n As Long) As Long
k = 1
Do Until n = 1
If n Mod 2 = 0 Then
n = n / 2
Else
n = 3 * n + 1
End If
k = k + 1
Loop
Syracuse = k
End Function
Sub Essai()
Dim x(1 To 12, 1 To 1)
Dim y(1 To 12, 1 To 1)
For i = 1 To 12
x(i, 1) = 2 + i
Next i
y(1, 1) = Syracuse(3)
y(2, 1) = Syracuse(4)
y(3, 1) = Syracuse(5)
y(4, 1) = Syracuse(6)
y(5, 1) = Syracuse(7)
y(6, 1) = Syracuse(8)
y(7, 1) = Syracuse(9)
y(8, 1) = Syracuse(10)
y(9, 1) = Syracuse(11)
y(10, 1) = Syracuse(12)
y(11,1) =Syracuse(13)
y(12,1)=Syracuse(14)
maxi = WorksheetFunction.Max(y)
For i = 1 To 12
If y(i, 1) = maxi Then
[A1] = x(i, 1)
Exit For
End If
Next i
[B1] = maxi
End Sub
Comme je veux faire mes tests (Essai) sur des milliers de valeurs, il me faudrait faire une boucle pour "remplir" y avec Syracuse, mais quand je tente le coup, ça bogue. Probablement dû à une mauvaise déclaration de variables. J'ai un peu perdu la main depuis le temps lointain d'Excelabo! Vous avez des suggestions?
Serge
Dernière modification par un modérateur: