[Déplacé .NET -> VBA]Problème de multiplication sous VBA access

targazh Messages postés 1 Date d'inscription jeudi 4 août 2011 Statut Membre Dernière intervention 13 septembre 2011 - 13 sept. 2011 à 22:22
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 14 sept. 2011 à 07:36
Bonjour,

J'ai un souci avec le code suivant :

Function essai6()

Debug.Print (16 * 15 * 15 * 16)

End Function

VBA me dit "dépassement de capacité"

J'ai contourné
en faisant ça :
den=1
den=den*16
den=den*15
den=den*15
den=den*16

Mais je trouve cela bizarre.

Y-a-t-il une explication ?

Merci de votre aide.

Ro.

2 réponses

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
13 sept. 2011 à 23:34
Bonjour,

Attention à la catégorie, VBA Access n'est pas .NET. J'ai déplacé le sujet.

Sinon, je pense qu'il tente de faire ta multiplication sur un Integer (16 bits signés) alors que dans l'autre cas, ta variable est de type Variant donc s'adapte au besoin.

Essayes de forcer la conversion :
Debug.Print (clng(16) * 15 * 15 * 16)
ou
Debug.Print (cdbl(16) * 15 * 15 * 16)

Sinon, je pense que tu n'as pas activé Option Explicit, fais-le, ça rendra ton codage moins aléatoire (erreur dans les noms de variables notamment).

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
14 sept. 2011 à 07:36
ou encore
Debug.Print 16# * 15 * 15 * 16



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous