Dépassement de capacité (bis)

Bonjour

je reviens sur un sujet que j'avais ouvert et pour lequel on m'a donné une astuce mais qui me pose soucis.

voici un petit bout de code, avec et sans l'astuce.

Sub recherche_carre() Dim Nombre As Double Dim Resultat As Double Nombre = InputBox("Donnez un nombre") Resultat = Nombre ^ 2 MsgBox ("le resultat est ") & Resultat End Sub

Sub recherche_carre() Dim Nombre As Double Dim Resultat As Double Nombre = Replace(InputBox("Donnez un nombre"), ",", ".") Resultat = Nombre ^ 2 MsgBox ("le resultat est ") & Resultat End Sub

dans le premier cas, j'ai l'erreur "dépassement de capacité", pas dans le second.

pour info, je n'ai utilisé pour mes essais que des nombres entiers, ni point, ni virgule donc pas d'erreur de ce coté.

apparement j'ai ce problème quand je me sert d'"inputbox"

j'aimerais vraiment comprendre .

merci d'avance pour votre aide.

Bonjour,

dans le premier cas, j'ai l'erreur "dépassement de capacité", pas dans le second.

avec quel nombre as-tu essayé ? je n'ai pas d'erreur avec 1000000

j'ai essayé avec 11, 22 et d'autres petits nombres

Aucune erreur ... aurais-tu un bout de ton fichier ?

qu'est ce que tu appelles " un bout " de mon fichier?

Bonjour,

à tester,

Sub recherche_carre()
Dim Nombre As Double
Dim Resultat As Double
On Error Resume Next
Nombre = Application.InputBox("Donnez un nombre", 1)
If IsNumeric(Nombre) Then
    Resultat = Nombre ^ 2
    MsgBox ("le resultat est ") & Resultat
End If
End Sub

oui, le programme fonctionne.

j'arrive vraiment pas à comprendre quel est le problème

alors je viens d'essayer en ajoutant "on error résumé next"

Sub recherche_carre() Dim Nombre As Double Dim Resultat As Double On Error Resume Next Nombre = InputBox("Donnez un nombre") Resultat = Nombre ^ 2 MsgBox ("le resultat est ") & Resultat End Sub

là ça fonctionne.

j'aimerai vraiment trouver le fin mot de l'histoire car je tente de me former petit à petit mais si dès les premières lignes il faut déjà que je "bricole", je risque de vite m'y perdre.

alors je viens d'essayer en ajoutant "on error résumé next"

je n'ai pas utilisé Nombre = InputBox("Donnez un nombre")

j'ai utilisé

Nombre = Application.InputBox("Donnez un nombre", 1)

sur lequel on peut spécifier le Type 1 = numérique

oui.

ce que je voulais dire c'est que le code complet que tu m'as transmis fonctionne très bien, et que

mon code d'origine auquel j'ai rajouté "on error resume next" fonctionne également.

mais je ne vois pas le lien de cause à effet.

Bonjour Isabelle ...

Chez moi, ta macro fonctionnait à condition de bien mettre que du numérique ... mais je ne comprends pas non plus pourquoi cela disjonctait chez toi car excel te mettait quand même un "simple" dépassement de capacité, ce qui prouve que le nombre entré était bien numérique !

Oui j'aurais bien aimé voir ton fichier, a minima ce qui te donnait cette erreur en épurant le reste. Ce que j'appelle un "bout" de fichier.

Le on error resume next est là pour outrepasser l'erreur.

alors je n'ai pas de fichier associé.

je débute donc je m'essaye à des lignes de codes au fur et à mesure de ma lecture.

donc à par les ligne VBA, aucune données.

Après plusieurs essais, ce qui semble vraiment contourner l'erreur, c'est l'ajout de "application." devant inputbox.

enfin c'est ce qu'il me semble au vu des essais.

en l'écrivant comme ça il n'y a plus d'erreur

Sub recherche_carre() Dim Nombre As Double Dim Resultat As Double Nombre = Application.InputBox("Donnez un nombre") Resultat = Nombre ^ 2 MsgBox ("le resultat est ") & Resultat End Sub

reste à comprendre pourquoi.🤔

re,

La méthode InputBox est différente de la fonction InputBox, car elle permet une validation sélective de l'entrée de l'utilisateur et elle peut être utilisée avec des objets Microsoft Excel, des valeurs d'erreur et des formules. Notez que Application.InputBox appelle la méthode InputBox ; InputBox sans qualificateur d'objet appelle la fonction InputBox

info supplémentaire

Nombre = Application.InputBox(Prompt:="Donnez un nombre", Type:=1)
Syntaxe        
expression.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)

Le tableau suivant répertorie les valeurs pouvant être passées dans l'argument Type. Il peut s'agir d'une seule valeur ou d'une somme de valeurs. Par exemple, pour une zone d'entrée qui peut accepter du texte et des nombres, affectez la valeur 1 + 2 à Type.

Valeur        Signification
0        Une formule.
1        Un nombre.
2        Texte (une chaîne).
4        Une valeur logique (True ou False).
8        Une référence de cellule, sous la forme d'un objet Range.
16        Une valeur d'erreur, telle que #N/A.
64        Un tableau de valeurs.

Bonjour à tous,

et avec

Resultat = CDbl(Nombre) ^ 2

toujours la même erreur ?

précise si c'est bien sur cette ligne de code que tu as l'erreur

eric

Bonsoir,

Apple?

Peut-être?

merci Isabelle pour cette explication.

ce qui est perturbant c'est que ce qui marche chez les autres ne marche pas chez moi.

pour répondre a Cousinhub, je me suis également posé la question du fait de bosser sur Mac

Rechercher des sujets similaires à "depassement capacite bis"