VBA : problème niveau débutant (déjà difficile pour moi)

Bonjour à la communauté

Ce sont mes tous premiers pas en programmation, et j'ai choisi d'apprendre VBA pour écrire des macros sur Excel

Je rencontre déjà un problème, sur une toute petite ligne de code

Le but est de calculer une moyenne de notes, sachant que celle de chimie compte double
Mon code me renvoi 2 solutions différentes, selon que je place ma note de chimie à la fin ou non. Je ne comprends pas du tout pourquoi

1er cas où le code fonctionne :

Sub Serie2Macro7()
Dim M, P, C As Single
M = InputBox("Saisir la note de mathématiques")
P = InputBox("Saisir la note de Physiques")
C = InputBox("Saisir la note de Chimie")
MsgBox (" Moyenne sur 20 obtenue : " & (P + 2 * C + M) / 4)
End Sub

Je rentre 10 en maths, 10 en physiques, 20 en Chimie, j'ai bien 15 de moyenne

2eme cas où le code ne fonctionne pas :

Sub Serie2Macro7()
Dim M, P, C As Single
M = InputBox("Saisir la note de mathématiques")
P = InputBox("Saisir la note de Physiques")
C = InputBox("Saisir la note de Chimie")
MsgBox (" Moyenne sur 20 obtenue : " & (P + M + 2 * C) / 4)
End Sub

Avec 10 en maths, 10 en physiques et 20 en chimie, j'obtiens 262,5 !

Sauriez-vous par hasard ce qui ne fonctionne pas dans mon 2eme code? Je deviens dingue à force de chercher, et je suis persuadée que ça doit être très évident

Un très grand merci à tous
Nathalie

Bonjour

Le cas 1 fonctionne car c*2 est au milieu de la formule, dans le cas 2 vba concatène M et P=> 1010 ! avant de rajouter 40.

Dans ce cas il faut convertir M et P en nombre et ça marche

Ta solution 2 ok mais par chance ...

Sub Serie2Macro7()
Dim M, P, C As Single
M = InputBox("Saisir la note de mathématiques")
P = InputBox("Saisir la note de Physiques")
C = InputBox("Saisir la note de Chimie")

MsgBox " Moyenne sur 20 obtenue : " & (P + (C * 2) + M) / 4
End Sub

Une solution plus orthodoxe

Sub Serie3Macro7()
Dim M, P, C As Single
M = InputBox("Saisir la note de mathématiques")
P = InputBox("Saisir la note de Physiques")
C = InputBox("Saisir la note de Chimie")

MsgBox " Moyenne sur 20 obtenue : " & (CInt(P) + CInt(M) + (C * 2)) / 4

End Sub

A tester

Cordialement

FINDRH

Merci beaucoup pour la réponse!
Très bonne journée

Rechercher des sujets similaires à "vba probleme niveau debutant deja difficile moi"