Calculer le BMI (IMC) en VBA

bomagicmusic

XLDnaute Occasionnel
Bonjour,

J'ai crée un user form qui me permet de rentrer la taille en cm et le poids en kg sans virgule.
J'ai donc la textbox taille et la textbox poids.
j'aimerai que le BMI se calcul automatiquement et aparaisse dans la textbox BMI, arrondie au chiffre le plus proche donc sans virgule.

Pourl'instant j'ai ce code:

Private Sub TextBoxTaille_Change()
TextBoxBMI = TextBoxPoids / (TextBoxTaille / 100 * TextBoxTaille / 100)
TextBoxBMI = Format(BMI, "##")
End Sub

Mais il doit y avoir une erreur quelque part
Quelqu'un a t'il la solution?

Merci
 

Efgé

XLDnaute Barbatruc
Re : Calculer le BMI (IMC) en VBA

Bonjour bomagicmusic, le fil, le forum,
Sans fichier pour tester rien n'est certain. Essai comme ça... ... peut être.
VB:
Private Sub TextBoxTaille_Change()
TextBoxBMI = Format(TextBoxPoids / ((TextBoxTaille / 100) * (TextBoxTaille / 100)), "##")
End Sub
Cordialement
 

Efgé

XLDnaute Barbatruc
Re : Calculer le BMI (IMC) en VBA

Re
Comme tu utilise des textBox, il y a un risque de faire des calculs avec du texte....
Essai de forçer les valeur en numérique avec, par exemple Clng (F1 est ton amie)

TextBoxBMI = Format(Clng(TextBoxPoids) / ((Clng(TextBoxTaille) / 100) * (Clng(TextBoxTaille) / 100)), "##")

Si ce n'est pas bon, il faudra quand même penser à fournir un ti'exemple....
Cordialement
 

Staple1600

XLDnaute Barbatruc
Re : Calculer le BMI (IMC) en VBA

Bonsoir à tous


Une autre façon qui semble fonctionner

Code:
MsgBox Val(TextBox1 / (TextBox2 / 100) ^ 2)

Pour rappel: masse en kilogramme et taille en mètre
Ex: 55 kg et 1,50 donne bien 24 avec la macro ci-dessus.
 

Efgé

XLDnaute Barbatruc
Re : Calculer le BMI (IMC) en VBA

Re bomagicmusic, Bonjour Staple :),
Pour le user form Nouveau Patient :
Tout fonctionne si :
- On bloque le traitement en cas de testBox vide :rolleyes:
- On utilise normalement la proposition de Staple (ce n'était qu'un exemple, le MsgBox est une boite d'avertissement)

Donc en prenant tout ça en compte, je pense que ceci devrait aller:
VB:
Private Sub TextBoxTaille_Change()
If TextBoxTaille = "" Or TextBoxPoids = "" Then Exit Sub
TextBoxBMI = Val(TextBoxPoids / (TextBoxTaille / 100) ^ 2)
End Sub
Cordialement
 

Discussions similaires

Réponses
7
Affichages
449

Statistiques des forums

Discussions
312 540
Messages
2 089 408
Membres
104 163
dernier inscrit
Lolo37