Opération mathématique dans code VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Laurent313131

XLDnaute Occasionnel
Bonsoir,

J'aimerais calculer l'indice de masse corporelle (IMC = Poids / Taille²) à l'aide d'un code VBA.

J'ai tenté le code suivant mais ça ne marche pas :

Sub Perf()

Dim Taille As Integer
Taille = InputBox("Quelle est votre taille en cm", "Biométrie")

Sheets("Feuil3").Range("E16") = Taille

Dim Poids As Integer
Poids = InputBox("Quelle est votre poids en kg", "Biométrie")

Sheets("Feuil3").Range("f16") = Poids

Dim IMC As Integer
IMC = (Poids / (Taille * Taille))
Sheets("Feuil3").Range("g16") = IMC


End Sub


Merci pour votre aide !
 
Re : Opération mathématique dans code VBA

bonjour Laurent

Voici ton code remanié

Code:
Sub Perf()
Dim Taille As Integer
Taille = CInt(InputBox("Quelle est votre taille en cm", "Biométrie"))
Sheets("Feuil3").Range("E16") = Taille
Dim Poids As Double
Poids = CDbl(InputBox("Quelle est votre poids en kg", "Biométrie"))
Sheets("Feuil3").Range("f16") = Poids
Dim IMC As Double
IMC = (Poids / (Taille * Taille))
Sheets("Feuil3").Range("g16") = IMC
End Sub

PS: le résultat me parait curieux ,mais je ne suis pas specialiste
 
Re : Opération mathématique dans code VBA

Bonsoir,

Il faut définir les variable en fonction du besoin: INTEGER désigne un entier (l'aise dit "Les variables de type Integer sont stockées sous la forme de nombres de 16 bits (2 octets) dont la valeur est comprise entre -32 768 et 32 767. "

Si vous définissez IMS avec SINGLE ou DOUBLE suivant la précision désirée vous aurez un résultat avec des décimales

GIBI

PS la puissance 2 s'écrit (Taille ^ 2)
 
Dernière édition:
Re : Opération mathématique dans code VBA

Merci pour vos réponses.

Je te confirme PierreJean que la formule de l'IMC est bien Poids/Taille² (en mètres). Je la demande en cm dans mon code pour des raisons pratiques... je pense que c'est ça qui t'as induit en erreur !

Tu peux même calculer le tien 🙂

Classification IMC (kg/m2)
Maigreur <18,5
Normal 18,5 à 24,9
Surpoids 25 à 29,9
Obésité > 30
Obésité massive > 40
 
Re : Opération mathématique dans code VBA

Re

Renseignement pris j'aurais plutôt

Code:
Sub Perf()
Dim Taille As Double
Taille = CDbl(InputBox("Quelle est votre taille en cm", "Biométrie"))
Sheets("Feuil3").Range("E16") = Taille & " cm"
Dim Poids As Double
Poids = CDbl(InputBox("Quelle est votre poids en kg", "Biométrie"))
Sheets("Feuil3").Range("f16") = Poids & " kg"
Dim IMC As Double
IMC = (Poids / ((Taille / 100) * (Taille / 100)))
Sheets("Feuil3").Range("g16") = Round(IMC) & " kg/m2"
End Sub

Ps: je suis en leger surpoids : IMC=26
 
Re : Opération mathématique dans code VBA

Merci pour la modif. Léger surpoids mais cela dépend de la morphologie de la personne. Bref passons 🙂

J'ai un petit soucis car quand la taille saisie dans la inputbox s'affiche dans ma cellule, Excel l'arrondit à l'entier supérieur ! J'ai saisis 1.73 et 2.00 est affiché !

Je suis allé dans le format de cellule mais je n'ai rien trouvé ...
 
Re : Opération mathématique dans code VBA

Bonjour Laurent, GIBI
Bonjour pierrejean 🙂

Essaye comme ceci :

Code:
Sub Perf()

Dim Taille As Integer, Poids As Double, IMC As Double
Taille = Application.InputBox("Quelle est votre taille en cm", "Biométrie", , , , , , 1)
Poids = Application.InputBox("Quelle est votre poids en kg", "Biométrie", , , , , , 1)
If Taille = 0 Or Poids = 0 Then Exit Sub
    IMC = Poids / (Taille / 100 * Taille / 100)
    Sheets("Feuil3").Range("f16") = Poids
    Sheets("Feuil3").Range("E16") = Taille / 100
    Sheets("Feuil3").Range("E16").NumberFormat = "0.00"
    Sheets("Feuil3").Range("g16") = IMC
    Sheets("Feuil3").Range("g16").NumberFormat = "0.00"

End Sub
La taille doit être saisie avec un entier 173 pour 1 m 73.

Heuuu, si tu saisis 1.73 cm pour la taille c'est pas bien grand 😀

Bonne soirée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
196
Réponses
3
Affichages
687
Réponses
3
Affichages
344
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
459
Réponses
7
Affichages
731
Retour