Determiner une limite en fonction d'un calcul
Y
Bonjour à tous,
Révisant mon cours de VBA, je bute sur un exercice,
Nous devons déterminer la limite du nombre d'abonnées par rapport à une formule, en faisant le calcul à la main nous arrivons à 100 000.
J'arrive à afficher le résultat car j'ai calculé à la main, cependant quelle formule me permettrait de faire ce calcul. Idem pour les années comme les associés à un résultat sur le temps (boucle While ? ) ?
Voici l'exercice [im
g][/img]
Je vous remercie d'avance pour votre aide et très bon week-end
Yann MASSON
t
Bonjour Yann.
En reprenant les questions dans l'ordre :
Sub limiteJ()
Dim j As Double, jn As Double, n%: j = 50000
n = -1
Do
j = jn
n = n + 1
jn = 100000 - 50000 * 0.8 ^ n
Loop While j <> jn
n = 2012 + n
Debug.Print "Nombre d'abonnés limite: " & j & " atteint le: 1er Janvier " & n
End Sub
Sub an95()
Dim j As Double, jn As Double, n%: j = 50000
n = -1
Do
j = jn
n = n + 1
jn = 100000 - 50000 * 0.8 ^ n
Loop While jn < 95000
n = 2012 + n
Debug.Print "Nombre d'abonnés limite: " & jn & " atteint le: 1er Janvier " & n
End Sub
Function limite(nJoueurs As Double)
Dim j As Double, jn As Double, n%: j = 50000
If nJoueurs < 50000 Then limite = "Limite minimale de 50000 joueurs": Exit Function
If nJoueurs > 100000 Then limite = "Limite maximale de 100000 joueurs": Exit Function
n = -1
Do
j = jn
n = n + 1
jn = 100000 - 50000 * 0.8 ^ n
Loop While jn < nJoueurs
limite = 2012 + n
End FunctionY
Merci beaucoup pour ton retour, Benoit !
Cela m'a beaucoup aidé à comprendre le fonctionnement du Loop While
Très bonne journée
"
Bonjour Yann.
En reprenant les questions dans l'ordre :
Sub limiteJ() Dim j As Double, jn As Double, n%: j = 50000 n = -1 Do j = jn n = n + 1 jn = 100000 - 50000 * 0.8 ^ n Loop While j <> jn n = 2012 + n Debug.Print "Nombre d'abonnés limite: " & j & " atteint le: 1er Janvier " & n End Sub Sub an95() Dim j As Double, jn As Double, n%: j = 50000 n = -1 Do j = jn n = n + 1 jn = 100000 - 50000 * 0.8 ^ n Loop While jn < 95000 n = 2012 + n Debug.Print "Nombre d'abonnés limite: " & jn & " atteint le: 1er Janvier " & n End Sub Function limite(nJoueurs As Double) Dim j As Double, jn As Double, n%: j = 50000 If nJoueurs < 50000 Then limite = "Limite minimale de 50000 joueurs": Exit Function If nJoueurs > 100000 Then limite = "Limite maximale de 100000 joueurs": Exit Function n = -1 Do j = jn n = n + 1 jn = 100000 - 50000 * 0.8 ^ n Loop While jn < nJoueurs limite = 2012 + n End Function