Les dépassements de capacité peuvent avoir des causes diverses. Il sera plus facile de vous répondre si vous donnez des exemples de données qui provoquent un dépassement de capacité.
Dim TRIM_MOYEN As Double
Dim Montant_Tot_Resume As Double
Dim CC As Integer
CC = 0
TRIM_MOYEN = 0
Montant_Tot_Resume = 0
Do While (tableau_clients(CC, 1) <> "")
TRIM_MOYEN = TRIM_MOYEN + Range("TRIM_Existant").Value * tableau_clients(CC, 3)
Montant_Tot_Resume = Montant_Tot_Resume + tableau_clients(CC, 3)
CC = CC + 1
Loop
TRIM_MOYEN = TRIM_MOYEN# / Montant_Tot_Resume
Exemple de données avec 2 itérations de la boucle :
Dans la boucle: TRIM_MOYEN : 15,94% et 16,5%
Dans la boucle: Range("TRIM_Existant").Value : 15,94% et 16,5%
Dans la boucle: Montant_Tot_Resume : 50 000 et 70 000
tableau_clients(CC,3): 50 000 et 70 000
Donc, à la fin de la boucle, TRIM_MOYEN = (0,1594 * 50 000 + 0,165 * 70000) = 19520 et
Montant_Tot_Resume = 50000+70000 = 120000
Le Calcul
TRIM_MOYEN = TRIM_MOYEN# / Montant_Tot_Resume
devrait fournir le rendement moyen pondéré, à savoir 0,1662 (ou 16,62%).
Mais il y a dépassement de capacité, l'erreur pointe sur cette dernière ligne de code.
La boucle peut se produire de 1* à 100* en fonction des choix de l'utilisateur, toutes les données sont du même genre.