Dépassement de capacité (Erreur 6)
everes
Messages postés
169
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
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é) :
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.
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:
- Erreur d'execution 6 dépassement de capacité
- Nero 6 - Télécharger - Gravure
- Paris multiple 2/6 explication ✓ - Forum Loisirs / Divertissements
- Dans la table des matières du document à télécharger, le chapitre 6 et ses 2 sections n'apparaissent pas. trouvez l'erreur dans la structure du document et corrigez-la. mettez à jour la table des matières. quel est le mot formé par les lettres en majuscules de la table des matières après sa mise à jour ? - Forum Word
- Le logiciel amd a détecté un dépassement de délai du pilote - Forum Carte graphique
- Belote a 6 - Forum Graphisme
8 réponses
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
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.
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.
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSub 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.
Je te conseille d'éviter les accents ou cédilles dans les noms
Ce code fonctionne chez moi.
J'ai enlevé la clause On Error, car elle te fait sortir de la macro.
Quelle erreur as tu?
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?
PS pour utiliser correctement les balises de code https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
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.
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.
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 ?
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 ?
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?
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?
Je n'avais pas penser à ça, pas faux.
Merci pour le rappel.
A cette ligne :
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à.

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à.

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 ?