[VBA] Message "dépassement de capacité"

K

keno

Guest
Bonjour,

Voici un petit code donnant une erreur 'dépassement de capacité'.

Le résultat du calcul fait 33143, ce qui rentre normalement dans les capacités d'un double.

En décomposant le calcul, cela fonctionne, mais pas en un seul bloc.

Quelqu'un aurait une idée ?

D'avance, merci.

Code:
Sub test()
    Dim azerty As Double

    azerty = 23
    azerty = 12 * 60 + azerty
    azerty = 3600 * 9 + azerty
    MsgBox 'ok'    'Jusqu'ici, tout va bien

    azerty = (3600 * 9) + (12 * 60) + 23 'Et là, ça plante...

End Sub
 

Jacou

XLDnaute Impliqué
bonsoir Keno,
en fait dans la première partie de ton code lorsque tu fais tes différents calculs, tu ajoute une donnée 'integer' à une donnée 'double' (azety). Excel fait alors une conversion dans le format le plus étendu (double).
Dans ta dernière ligne , chaque donnée (3600*9; 12*60; 23) est une donnée inférieure à 32767 et est donc considéré comme de type integer - Excel calcule donc sous ce format là avant de faire la conversion vers la donnée azerty et se heurte à un dépassement de capacité puisque le résultat est supérieur à 32767.
pour éviter cela, tu peux faire ainsi :
azerty = 0
azerty = azerty + (3600*9)+(12*60)+23
ou encore
azerty=0#+(3600*9)+(12*60)+23

le '#' indique à excel qu'il s'agit d'une donnée au format double.

J'espère avoir été assez clair

bonne soirée
 

Discussions similaires

Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 338
Messages
2 087 396
Membres
103 534
dernier inscrit
Kalamymustapha