De l'aide pour l'erreur de débordement dans VBA, il y a les exemples suivants:Malentendu de type de données Long en VBA
Dim x As Long
x = 2000 * 365 ' gives an error
Dim x As Long
x = CLng(2000) * 365 ' fine
j'aurais pensé que, puisque le type de données Long est censé être en mesure de tenir Nombres de 32 bits, que le premier exemple fonctionnerait bien.
Je pose cette question parce que j'ai un code comme ceci:
Dim Price as Long
Price = CLng(AnnualCost * Months/12)
et cela jette une erreur de débordement lorsque AnnualCost est 5000 et mois est 12.
Qu'est-ce que je manque?
Je vois que vous avez une réponse au problème. Il peut être préférable d'utiliser la devise (ccur), plutôt que longue, à la fois pour la cohérence et parce que même si vous n'avez pas besoin de décimales maintenant, vous pouvez le faire à l'avenir. – Fionnuala
2000 est un nombre entier. Utilisez 2000 et 365 et vous serez bien. – Robino