Excel VBA - Erreur 6 dépassement de capacité

Anonyme
2022-03-16T16:55:50+00:00

Bonjour,

J'ai créé un code pour calculer l'IMC d'une personne. Ça fonctionne sauf qu'il y a une limite quand au poids (en livre) que je peux dépasser. Je ne peux entrer un entier supérieur à 255. J'ai essayé avec integer et long sans succès.

Sub Calcul_IMC()

Dim taille As Byte

Dim poids As Byte

Dim tampon As String

Dim imc As Double

le_poids:

tampon = InputBox("Quel est votre poids en livres ?")

If (IsNumeric(tampon)) Then

   ***poids = tampon*** 

Else

MsgBox ("Vous devez saisir votre poids en livres, Ex. 150 livres.") 

GoTo le\_poids: 

End If

la_taille:

tampon = InputBox("Quelle est votre taille en pouces ?")

If (IsNumeric(tampon)) Then

   taille = tampon 

Else

MsgBox ("Vous devez saisir votre taille en pouces, Ex. 5 pieds = 60 pouces.") 

GoTo la\_taille: 

End If

imc = poids / taille

imc = imc / taille

imc = imc * 703

imc = Round(imc, 1)

Cells(6, imc - 13).Value = Cells(1, 33).Value

MsgBox (imc)

If (imc < 16) Then 

    Range("B14").Value = "Votre poids est d'une extrême maigreur, et votre risque de maladie est élevé ! Vous devez prendre du poids." 

    ElseIf (imc <= 18.4) Then 

        Range("B14").Value = "Votre poids est insuffisant, et votre risque de maladie est modérée. Vous devez prendre un peu de poids." 

    ElseIf (imc <= 24.9) Then 

        Range("B14").Value = "Votre poids est normal, et votre risque de maladie est faible." 

    ElseIf (imc <= 29.9) Then 

        Range("B14").Value = "Vous souffrez d'embonpoint, et votre risque de maladie est modérée. Vous devez perdre un peu de poids." 

    ElseIf (imc <= 34.9) Then 

        Range("B14").Value = "Vous souffrez d'obésité, et votre risque de maladie est élevé ! Vous devez perdre du poids." 

    ElseIf (imc <= 40) Then 

        Range("B14").Value = "Vous souffrez d'obésité sévère, et votre risque de maladie est très élevé ! Vous devez perdre beaucoup de poids." 

    Else 

        Range("B14").Value = "Vous souffrez d'obésité morbide, et votre risque de maladie est extrêmement élevé ! Vous devez de toute urgence voir un médecin !" 

End If 

End Sub

Microsoft 365 et Office | Excel | Other | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

3 réponses

  1. DanielCo 107.7K Points de réputation
    2022-03-16T17:09:07+00:00

    Bonjour,

    Le type "byte" est limité à 255. Utilise plutôt "Integer" (limité à 32767 (ça devrait suffire), sinon "Long" :

    Dim poids As Integer

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    1 personne a trouvé cette réponse utile.
    0 commentaires Aucun commentaire
  2. Anonyme
    2022-03-16T17:30:46+00:00

    Merci Daniel du gars du Québec, Montréal !

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2022-03-16T17:15:45+00:00

    Note : aux tout début des ordinateurs, la mémoire devait être économisée, aussi "Byte" utilisait 1 octet, "Integer", 4 octets et "Long" 8 octets. C'est évidemment dépassé avec des 8 Go de RAM, ou plus.

    Donc, je n'utilise plus que Long, royalement (ou Integer, par flemme, parce qu'il suffit de taper "in"...)

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire