Dépassement de capacité (Erreur 6)

Fermé
everes Messages postés 169 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 22 avril 2021 - Modifié le 10 oct. 2020 à 20:42
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 17 avril 2021 à 21:42
Bonjour,

Constamment en voulant programmer en VBA je tombe sur une erreur 6.
Peu importe ce que je fais je me retrouve avec un dépassement de capacité alors que j'ai défini mes variables comme étant des "Double".
Etrangement, souvent, en passant de "Double" à "Long" tout fonctionne.

L'exercice sur lequel je peine actuellement est le suivant (et pourtant il est d'une facilité) :

Sub Puissance()
Dim lngVal As Long
Dim lngPuissance As Long
Dim lngElevation As Long

lngVal = InputBox("Entrez une valeur")
lngPuissance = InputBox("A quelle puissance voulez-vous l'élever ?")
lngElevation = lngVal ^ lngPuissance

MsgBox lngElevation

End Sub


Il m'est impossible d'élever un pauvre nombre décimal à une quelconque puissance.
Ici l'erreur apparaît lorsque je cherche à faire 7,4^8.
En voulant débogger, il apparaît que lngElevation vaut 0 alors lngVal vaut 7,4 et lngPuissance vaut 8.

En vous remerciant pour l'aide apportée.
A voir également:

8 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
10 oct. 2020 à 21:27
Bonsoir

Tu as défini comme long, donc un entier.
Tu ne peux pas y mettre un décimal.
1
everes Messages postés 169 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 22 avril 2021 7
10 oct. 2020 à 21:48
Effectivement mais même malgré cela, je devrais avoir un résultat.
Mais alors pourquoi quand je définis tous mes variables comme étant des "Double" rien ne fonctionne ? Alors que le corrigé de l'exercice indique que le type est bien un "Double ?
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
10 oct. 2020 à 22:14
Je ne fais que très rarement de vba, je dirais que l'inputbox retourne une string qu'il faut convertir en double avec Cdbl ou Val
1
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
10 oct. 2020 à 22:21
Bonjour
Code testé sous excel.
Aucun souci de fonctionnement (après avoir modifié le type des variables en Double) y compris avec le calcul de la question.
A noter qu'il faut bien utiliser une virgule et non le point pour le 7,4
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
11 oct. 2020 à 00:20
Ha oui, la virgule!
0
everes Messages postés 169 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 22 avril 2021 7 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
11 oct. 2020 à 07:24
Bonjour jordane45,

Le code est tiré d'un livre que j'ai acheté dont le corrigé prouve bien que c'est supposé fonctionné.
Sauf que chez-moi cela ne fonctionne absolument pas. Et ce n'est pas la première fois.
Et je vous rassure j'emploie bien la virgule. J'en viens limite à remettre en cause ma version d'Excel.
0
everes Messages postés 169 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 22 avril 2021 7
11 oct. 2020 à 07:28
Comment est-ce possible alors que j'ai déclaré mes variables en Double ?
Je vais quand même essayé ce que vous me dites. Je vous remercie.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
11 oct. 2020 à 09:08
En fait, si ton ordinateur est configuré de sorte que le symbole décimal est le point, alors c'est le point qu'il faut utiliser
1
everes Messages postés 169 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 22 avril 2021 7
11 oct. 2020 à 10:54
Non j'avais déjà essayé et ça ne marchait pas non plus.
Quand je saisi 7.4 au lieu de 7,4 j'ai une erreur 13 incompatibilité de type tandis qu'avec 7,4 j'ai un dépassement de capacité.
Mon ordinateur est configuré de sorte que la virgule soit utilisée comme séparateur décimal.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
11 oct. 2020 à 19:07
Je sais pas, mais j'ai testé sous windows et je pense que Jordane aussi.

1
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
11 oct. 2020 à 19:12
Par contre, je suis sûr que les accents ne sont pas géré pareil sous mac et sous windows
0
everes Messages postés 169 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 22 avril 2021 7 > Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024
12 oct. 2020 à 01:42
J'ai enlevé tous les accents juste pour voir mais rien n'a changé.
Bon ben plus qu'à apprendre le VBA sur Windows.
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > everes Messages postés 169 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 22 avril 2021
17 avril 2021 à 21:42
peux-tu donner suite, ou marquer comme résolu?
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
11 oct. 2020 à 20:07
Je confirme.
Mac... C'est le mal.. :-)
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
11 oct. 2020 à 20:53
Jaloux ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
11 oct. 2020 à 11:01
Peux tu poster ton code modifié?
0
everes Messages postés 169 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 22 avril 2021 7
11 oct. 2020 à 11:09
Sub Puissance()
Dim dblNombre As Double
Dim dblPuissance As Double
Dim dblRésultat As Double
Dim strChaîne As String

On Error GoTo Sortie_Sur_Erreur
dblNombre = InputBox("Entrer le nombre")
dblPuissance = InputBox("Entrer la puissance")
dblRésultat = dblNombre ^ dblPuissance
strChaîne = dblNombre & " ˆ " & dblPuissance & " = "
MsgBox strChaîne & Format(dblRésultat, "### ### ###.00")
Sortie_Sur_Erreur:
End Sub


Ci-joint le code tiré du corrigé du livre mais qui ne marche absolument pas chez-moi.
Ce n'est pas la première fois que cela m'arrive.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
11 oct. 2020 à 12:33
Je te conseille d'éviter les accents ou cédilles dans les noms

Sub Puissance()
  Dim dblNombre As Double
  Dim dblPuissance As Double
  Dim dblResultat As Double
  Dim strChaine As String
  
  dblNombre = InputBox("Entrer le nombre")
  dblPuissance = InputBox("Entrer la puissance")
  dblResultat = dblNombre ^ dblPuissance
  strChaine = dblNombre & " ˆ " & dblPuissance & " = "
  MsgBox strChaine & Format(dblResultat, "### ### ###.00")

End Sub

Ce code fonctionne chez moi.
J'ai enlevé la clause On Error, car elle te fait sortir de la macro.

qui ne marche absolument pas chez-moi.
peux tu préciser?
Quelle erreur as tu?
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
11 oct. 2020 à 12:34
PS pour utiliser correctement les balises de code https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
everes Messages postés 169 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 22 avril 2021 7
Modifié le 11 oct. 2020 à 17:16
Les accents ne viennent pas de moi mais du corrigé du bouquin qui dit que VBA gère les accents sans soucis.
Jusqu'ici je n'ai jamais été embêté par les accents.

Si je saisis 7.4 j'obtiens une erreur 13 : incompatibilité de type.
Si je saisis 7,4 j'obtiens une erreur 6 : dépassement de capacité.

Merci pour les balises mais j'avais essayé ce qui est décrit dans l'article sauf que je n'ai pas trouvé les balises pour du VBA j'ai donc laissé tomber.

Le code ne fonctionne pas chez-moi.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > everes Messages postés 169 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 22 avril 2021
11 oct. 2020 à 18:22
Pour le langage, le VBA signifiant Visual Basic for Application ... il est facile de deviner que le langage à utiliser est le BASIC.

Quoi qu'il en soit, le code fonctionne parfaitement.
Le souci ne vient donc pas du code.

As tu essayé de désinstaller/réinstaller ton office ?
Quelle version utilises tu ?
Sous quel OS es tu ?
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
11 oct. 2020 à 17:16
Oui VBA gère les accents, en français, si tu envoies ton fichiers à un ordinateur en anglais ça peut poser des problèmes.

Pour les balises, VBA est un dérivé de basic, donc basic.


A quelle ligne apparait le dépassement de capacité?
7,4 est il le nombre à élever en puissance ou la valeur de la puissance?
Quelle est l'autre valeur?
0
everes Messages postés 169 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 22 avril 2021 7
11 oct. 2020 à 17:27
Je n'avais pas penser à ça, pas faux.

Merci pour le rappel.

A cette ligne :
dblNombre = InputBox("Entrer le nombre")


7,4 est le nombre à élever en puissance.
L'autre valeur est 8.

J'ai joint un capture d'écran de la valeur contenue dans la variable dblNombre comme on peut s'apercevoir c'est bien 7,4 et pourtant l'erreur est là.

0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
11 oct. 2020 à 18:04
T'es sous Mac?
0
everes Messages postés 169 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 22 avril 2021 7
11 oct. 2020 à 19:01
Exacte, tu penses que cela joue ?
0