Problème à résoudre sous VBA

  • Initiateur de la discussion Initiateur de la discussion Julien_42
  • Date de début Date de début

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 !

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
 
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:
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 ^^)
 
- 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
3
Affichages
301
Réponses
4
Affichages
556
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
670
Réponses
2
Affichages
831
Réponses
0
Affichages
481
Réponses
9
Affichages
614
Retour