Problème à résoudre sous VBA

Julien_42

XLDnaute Nouveau
Bonjour,

J'ai un programme à créer sous excel dans le cadre de mon projet tutoré, une première partie de mon programme doit calculer le besoin energétique. J'ai entré tout le code que j'avais besoins mais ça ne marche pas et je ne comprend pas pourquoi ça me met que le end if (en rouge) est sans bloc if.

Donc si quelqu'un pouvez m'aider à comprendre

Voici mon programme:

Private Sub CommandButton2_Click()
'Déclaration de variables
Dim age As Integer
Dim poids, taille As Single
Dim sexe As String
Dim act As Single 'coefficient d'activité physique
Dim BEE As Single 'Besoin énergétique estimé

'Valeur age, poids, taille
age = txt_age.Text
poids = txt_poids.Text
taille = txt_taille.Text / 100 'taille cm --> m


'Calcul du BEE si FEMME
If cmd_femme.Value = True Then
If cmd_act.Value = "sédentaire" Then act = B1 'prend valeur de la cellule B1
End If
If cmd_act.Value = "peu actif" Then act = B2
End If
If cmd_act.Value = "actif" Then act = B3
End If
If cmd_act.Value = "très actif" Then act = B4
End If

BEE = 354 - (6.91 * age) + act * (9.36 * poids) + (726 * taille)

'Calcul du BEE si HOMME
ElseIf cmd_homme.Value = True Then
If cmd_act.Value = "sédentaire" Then act = C1
End If
If cmd_act.Value = "peu actif" Then act = C2
End If
If cmd_act.Value = "actif" Then act = C3
End If
If cmd_act.Value = "très actif" Then act = C4
End If

BEE = 662 - (9.53 * age) + act * (9.36 * poids) + (726 * taille)

End If

MsgBox (BEE)




End Sub

je met un imprime écran de l'interface graphique, ça vous aidera à comprendre mon programme.




Merci d'avance de votre réponse
 

tototiti2008

XLDnaute Barbatruc
Re : Problème à résoudre sous VBA

Bonjour Julien,

Bienvenue sur XLD,

il y a 2 façons d'écrire des If then

Code:
If Condition Then Action

dans ce cas, pas besoin de end If

ou

Code:
If Condition then
Action1
Action2
...
End if

Edit : Bonjour Pierrot, Bonjour Gilbert,

et d'autre part pour obtenir la valeur de la cellule B1 il faudrait mettre :

Code:
act = [B1]

ou

Code:
act = Range("B1").value
 
Dernière édition:

Julien_42

XLDnaute Nouveau
Re : Problème à résoudre sous VBA

Merci beaucoup de vos réponses ça marche... enfin j'obtient pas encore le bon résultat mais ça doit être un problème de formule.

Merci de m'avoir dit comment on faisait pour prendre la valeur d'une cellule tototiti2008, j'avais pas encore chercher comment on faisait.

Si je bloque encore dans la construction de mon programme je vous redemanderez de l'aide, vous êtes des Dieux... (bon ok j'exagère un peu ^^)
 

Statistiques des forums

Discussions
312 348
Messages
2 087 510
Membres
103 570
dernier inscrit
patrickb83p