11 réponses
HostOfSeraphim
Messages postés
6750
Date d'inscription
jeudi 2 février 2006
Statut
Contributeur
Dernière intervention
31 juillet 2016
1 608
5 janv. 2011 à 20:36
5 janv. 2011 à 20:36
Pour des instructions Else... If, tu dois utiliser Elseif :
Si tu utilises malgré tout un If dans un Else, tu dois fermer ton If :
If number < 10 Then digits = 1 ElseIf number < 100 Then digits = 2 Else digits = 3 End If
Si tu utilises malgré tout un If dans un Else, tu dois fermer ton If :
If number < 10 Then Else If number < 100 Then digits = 2 End If End If
bonsoir,
un bloc if ...then ... else doit se terminer par un end if
quand tu testes XS50 tu utilises 2 blocs If ...then...else.. et un seul end if.
Dans ton cas tu aurais du utiliser if ... then... elseif...then...elseif...then.... end if
Mêmes éléments pour le test ancienneté.
Par ailleurs, tu mets le résultat de inputbox dans la variable nbreXS50 , puis tu testes la variable XS50 ? étourderie puisque XS50 est une constante et vaut 180!!
A+
un bloc if ...then ... else doit se terminer par un end if
quand tu testes XS50 tu utilises 2 blocs If ...then...else.. et un seul end if.
Dans ton cas tu aurais du utiliser if ... then... elseif...then...elseif...then.... end if
If XS50 < 20 Then comissionXS50 = (nbreXS50 - 50) * 180 * 0.04 ElseIf XS50 < 51 Then comissionXS50 = nbreXS50 * 180 * 0.04 + nbreXS50 * 180 * 0.06 ElseIf XS50 > 50 Then comissionXS50 = 20 * 180 * 0.04 + 30 * 180 * 0.06 + (nbreXS50 - 50) * 180 * 0.1 End If
Mêmes éléments pour le test ancienneté.
Par ailleurs, tu mets le résultat de inputbox dans la variable nbreXS50 , puis tu testes la variable XS50 ? étourderie puisque XS50 est une constante et vaut 180!!
A+
L'exemple est même faux une deuxième fois
dans le sujet on a
donc si 60 vendus le calcul devrait porter sur :60-49 donc 11
or dans l'exemple on fait le calcul avec 10:
Bvo au concepteur de l'exercice !
dans le sujet on a
comission 6% xl100 a partir su 50eme surf vendu
donc si 60 vendus le calcul devrait porter sur :60-49 donc 11
or dans l'exemple on fait le calcul avec 10:
comission xl100=10*350*6%
Bvo au concepteur de l'exercice !
Utilisateur anonyme
6 janv. 2011 à 14:05
6 janv. 2011 à 14:05
donc ca donnerai ça? mais ce qui est bizarre, c'est que le salaire final quand je teste la valeur n'est pas le meme dans le resultat de l'exemple
Sub skiplus()
Const salFixe = 1100
Const XL100 = 350
Const XS50 = 180
Dim ancienneté As Integer
Dim primeAncienneté As Integer
Dim commissionAncienneté As Integer
Dim caXL100 As Integer
Dim caXS50 As Integer
Dim comissionXL100 As Integer
Dim comissionXS50 As Integer
Dim nbreXL100 As Integer
Dim nbreXS50 As Integer
Dim salaire As Integer
ancienneté = InputBox("quelle est l'ancienneté du représentant?")
If ancienneté > 5 And ancienneté < 10 Then
primeAncienneté = salFixe * 0.05
Else
If ancienneté > 10 Then
primeAncienneté = salFixe * 0.1
End If
End If
nbreXL100 = InputBox("combien de XL100 ont été vendus?")
caXL100 = nbreXL100 * XL100
If nbreXL100 > 49 Then
comissionXL100 = caXL100 * 0.06
End If
nbreXS50 = InputBox("combien de XS50 ont été vendus?")
If nbreXS50 < 20 Then
comissionXS50 = (nbreXS50 - 50) * 180 * 0.04
Else
If nbreXS50 < 51 Then
comissionXS50 = nbreXS50 * 180 * 0.04 + nbreXS50 * 180 * 0.06
Else
If nbreXS50 > 50 Then
comissionXS50 = 20 * 180 * 0.04 + 30 * 180 * 0.06 + (nbreXS50 - 50) * 180 * 0.1
End If
End If
End If
salaire = salFixe + comissionXL100 + comissionXS50
MsgBox ("le salaire finale est de " & salaire)
End Sub
Sub skiplus()
Const salFixe = 1100
Const XL100 = 350
Const XS50 = 180
Dim ancienneté As Integer
Dim primeAncienneté As Integer
Dim commissionAncienneté As Integer
Dim caXL100 As Integer
Dim caXS50 As Integer
Dim comissionXL100 As Integer
Dim comissionXS50 As Integer
Dim nbreXL100 As Integer
Dim nbreXS50 As Integer
Dim salaire As Integer
ancienneté = InputBox("quelle est l'ancienneté du représentant?")
If ancienneté > 5 And ancienneté < 10 Then
primeAncienneté = salFixe * 0.05
Else
If ancienneté > 10 Then
primeAncienneté = salFixe * 0.1
End If
End If
nbreXL100 = InputBox("combien de XL100 ont été vendus?")
caXL100 = nbreXL100 * XL100
If nbreXL100 > 49 Then
comissionXL100 = caXL100 * 0.06
End If
nbreXS50 = InputBox("combien de XS50 ont été vendus?")
If nbreXS50 < 20 Then
comissionXS50 = (nbreXS50 - 50) * 180 * 0.04
Else
If nbreXS50 < 51 Then
comissionXS50 = nbreXS50 * 180 * 0.04 + nbreXS50 * 180 * 0.06
Else
If nbreXS50 > 50 Then
comissionXS50 = 20 * 180 * 0.04 + 30 * 180 * 0.06 + (nbreXS50 - 50) * 180 * 0.1
End If
End If
End If
salaire = salFixe + comissionXL100 + comissionXS50
MsgBox ("le salaire finale est de " & salaire)
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
re
si pour la programmation ca fonctionne, pour le calcul, tu n'as pas du suivre le sujet !
par exemple
si le vendeur vend moins de 20 XS50, pour sa commission on fait nombre de XS50 - 50 !! c'est donc toujours négatif!!
par ailleur, tu calcules une prime d'ancienneté que tu n'utilises pas !
Relis bien le sujet
Bon courage
si pour la programmation ca fonctionne, pour le calcul, tu n'as pas du suivre le sujet !
par exemple
If nbreXS50 < 20 Then comissionXS50 = (nbreXS50 - 50) * 180 * 0.04
si le vendeur vend moins de 20 XS50, pour sa commission on fait nombre de XS50 - 50 !! c'est donc toujours négatif!!
par ailleur, tu calcules une prime d'ancienneté que tu n'utilises pas !
Relis bien le sujet
Bon courage
Utilisateur anonyme
6 janv. 2011 à 17:03
6 janv. 2011 à 17:03
jai un peu modifié mais tjrs pas le mm resultat
If ancienneté > 6 And ancienneté < 11 Then
primeAncienneté = salFixe * 0.05
Else
If ancienneté > 11 Then
primeAncienneté = salFixe * 0.1
End If
End If
nbreXL100 = InputBox("combien de XL100 ont été vendus?")
caXL100 = nbreXL100 * XL100
If nbreXL100 > 49 Then
comissionXL100 = caXL100 * 0.06
End If
nbreXS50 = InputBox("combien de XS50 ont été vendus?")
If nbreXS50 < 21 Then
comissionXS50 = nbreXS50 * 180 * 0.04
Else
If nbreXS50 < 51 And nbreXS50 < 21 Then
comissionXS50 = 20 * 180 * 0.04 + (nbreXS50 - 20) * 180 * 0.06
Else
If nbreXS50 > 50 And nbreXS50 < 51 And nbreXS50 < 21 Then
comissionXS50 = 20 * 180 * 0.04 + 30 * 180 * 0.06 + (nbreXS50 - 50) * 180 * 0.1
End If
End If
End If
salaire = salFixe + primeAncienneté + comissionXL100 + comissionXS50
MsgBox ("le salaire finale est de " & salaire)
End Sub
If ancienneté > 6 And ancienneté < 11 Then
primeAncienneté = salFixe * 0.05
Else
If ancienneté > 11 Then
primeAncienneté = salFixe * 0.1
End If
End If
nbreXL100 = InputBox("combien de XL100 ont été vendus?")
caXL100 = nbreXL100 * XL100
If nbreXL100 > 49 Then
comissionXL100 = caXL100 * 0.06
End If
nbreXS50 = InputBox("combien de XS50 ont été vendus?")
If nbreXS50 < 21 Then
comissionXS50 = nbreXS50 * 180 * 0.04
Else
If nbreXS50 < 51 And nbreXS50 < 21 Then
comissionXS50 = 20 * 180 * 0.04 + (nbreXS50 - 20) * 180 * 0.06
Else
If nbreXS50 > 50 And nbreXS50 < 51 And nbreXS50 < 21 Then
comissionXS50 = 20 * 180 * 0.04 + 30 * 180 * 0.06 + (nbreXS50 - 50) * 180 * 0.1
End If
End If
End If
salaire = salFixe + primeAncienneté + comissionXL100 + comissionXS50
MsgBox ("le salaire finale est de " & salaire)
End Sub
aïe !
les tests sur le Nombre de XS50 vendus se dégradent,
If nbreXS50 < 21 Then : ok
If nbreXS50 < 51 And nbreXS50 < 21: ça revient au premier test !
If nbreXS50 > 50 And nbreXS50 < 51 And nbreXS50 < 21 : si > 50 et <51 et <21 : pas possible
c'était correct avant (enfin ca depend de ce qui est demandé)
les tests sur le Nombre de XS50 vendus se dégradent,
If nbreXS50 < 21 Then : ok
If nbreXS50 < 51 And nbreXS50 < 21: ça revient au premier test !
If nbreXS50 > 50 And nbreXS50 < 51 And nbreXS50 < 21 : si > 50 et <51 et <21 : pas possible
c'était correct avant (enfin ca depend de ce qui est demandé)
Utilisateur anonyme
6 janv. 2011 à 17:24
6 janv. 2011 à 17:24
ca alors?
If nbreXS50 < 21 Then
comissionXS50 = nbreXS50 * 180 * 0.04
Else
If nbreXS50 < 51 And nbreXS50 > 20 Then
comissionXS50 = 20 * 180 * 0.04 + (nbreXS50 - 20) * 180 * 0.06
Else
If nbreXS50 > 50 And nbreXS50 < 51 And nbreXS50 < 21 Then
comissionXS50 = 20 * 180 * 0.04 + 30 * 180 * 0.06 + (nbreXS50 - 50) * 180 * 0.1
End If
End If
End If
If nbreXS50 < 21 Then
comissionXS50 = nbreXS50 * 180 * 0.04
Else
If nbreXS50 < 51 And nbreXS50 > 20 Then
comissionXS50 = 20 * 180 * 0.04 + (nbreXS50 - 20) * 180 * 0.06
Else
If nbreXS50 > 50 And nbreXS50 < 51 And nbreXS50 < 21 Then
comissionXS50 = 20 * 180 * 0.04 + 30 * 180 * 0.06 + (nbreXS50 - 50) * 180 * 0.1
End If
End If
End If
la société skiplus fabrique et distribue 2 types de surfs des neiges :
-le modele xl100 vendu 350€ ht
-le modele xs50 vendu 180€
les représentant vendent les produits. leur rémunération se calcule ainsi
salaire fixe de 1100€ marjoré de 5% a partir de 5ans ou 10/ apres 10 ans
comission 6% xl100 a partir su 50eme surf vendu
comission progressive modele xs50
4% sur le ca jusqua la 20eme planche
6% du 21 au 50eme
10% apartir du 51eme
exemple
60 srfs vendus xl100 et 50 xs50 12 ans dancienneté
fixe=1100*10
comission xl100=10*350*6%
xs50=20*180*4%+30*180*6%+(100-50)*180*10
-le modele xl100 vendu 350€ ht
-le modele xs50 vendu 180€
les représentant vendent les produits. leur rémunération se calcule ainsi
salaire fixe de 1100€ marjoré de 5% a partir de 5ans ou 10/ apres 10 ans
comission 6% xl100 a partir su 50eme surf vendu
comission progressive modele xs50
4% sur le ca jusqua la 20eme planche
6% du 21 au 50eme
10% apartir du 51eme
exemple
60 srfs vendus xl100 et 50 xs50 12 ans dancienneté
fixe=1100*10
comission xl100=10*350*6%
xs50=20*180*4%+30*180*6%+(100-50)*180*10
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
Modifié par ccm81 le 6/01/2011 à 17:36
Modifié par ccm81 le 6/01/2011 à 17:36
bonjour
et comme ça ?
bonne suite
et comme ça ?
Sub skiplus() Const salFixe = 1100 Const XL100 = 350 Const XS50 = 180 Dim ancienneté As Integer Dim primeAncienneté As Integer Dim commissionAncienneté As Integer Dim caXL100 As Integer Dim caXS50 As Integer Dim comissionXL100 As Integer Dim comissionXS50 As Integer Dim nbreXL100 As Integer Dim nbreXS50 As Integer Dim salaire As Integer If ancienneté > 6 And ancienneté < 11 Then primeAncienneté = salFixe * 0.05 Else If ancienneté > 11 Then primeAncienneté = salFixe * 0.1 End If End If nbreXL100 = InputBox("combien de XL100 ont été vendus?") caXL100 = nbreXL100 * XL100 If nbreXL100 > 49 Then comissionXL100 = caXL100 * 0.06 End If nbreXS50 = InputBox("combien de XS50 ont été vendus?") If nbreXS50 < 21 Then comissionXS50 = nbreXS50 * 180 * 0.04 Else If nbreXS50 < 51 Then comissionXS50 = 20 * 180 * 0.04 + (nbreXS50 - 20) * 180 * 0.06 Else comissionXS50 = 20 * 180 * 0.04 + 30 * 180 * 0.06 + (nbreXS50 - 50) * 180 * 0.1 End If End If salaire = salFixe + primeAncienneté + comissionXL100 + comissionXS50 MsgBox ("le salaire finale est de " & salaire) End Sub
bonne suite
Ben voila !
et avec le sujet on s'aperçoit qu'il ne reste plus qu'à vérifier la commission pour les XL100 !
Bon courage
et avec le sujet on s'aperçoit qu'il ne reste plus qu'à vérifier la commission pour les XL100 !
Bon courage
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
6 janv. 2011 à 18:03
6 janv. 2011 à 18:03
re
1. exact, jai zappé l'entrée de l'ancienneté, mais tu as l'air assez grand pour rectifier
2. pour les declarations de variables, le type integer est mal adapté, tu as des decimaux dans tes calculs, donc préférer le type single (ou double)
3. je te propose un plan et une syntaxe correcte, a toi éventuellement d'adapter
4. on essaie de t'aider, donc reste poli
bonne suite quand même
1. exact, jai zappé l'entrée de l'ancienneté, mais tu as l'air assez grand pour rectifier
2. pour les declarations de variables, le type integer est mal adapté, tu as des decimaux dans tes calculs, donc préférer le type single (ou double)
3. je te propose un plan et une syntaxe correcte, a toi éventuellement d'adapter
4. on essaie de t'aider, donc reste poli
bonne suite quand même
ancienneté = InputBox("quelle est l'ancienneté du représentant?")
If ancienneté > 4 And ancienneté < 11 Then
primeAncienneté = salFixe * 0.05
Else
If ancienneté > 10 Then
primeAncienneté = salFixe * 0.1
End If
End If
nbreXL100 = InputBox("combien de XL100 ont été vendus?")
caXL100 = nbreXL100 * XL100
If nbreXL100 > 49 Then
comissionXL100 = (nbreXL100) * XL100 * 0.06
Else: comissionXL100 = 0
End If
nbreXS50 = InputBox("combien de XS50 ont été vendus?")
If nbreXS50 < 21 Then
comissionXS50 = nbreXS50 * 180 * 0.04
Else
If nbreXS50 < 51 And nbreXS50 < 21 Then
comissionXS50 = 20 * 180 * 0.04 + (nbreXS50 - 20) * 180 * 0.06
Else
If nbreXS50 > 50 And nbreXS50 < 51 And nbreXS50 < 21 Then
comissionXS50 = 20 * 180 * 0.04 + 30 * 180 * 0.06 + (nbreXS50 - 50) * 180 * 0.1
End If
End If
End If
salaire = salFixe + primeAncienneté + comissionXL100 + comissionXS50
If ancienneté > 4 And ancienneté < 11 Then
primeAncienneté = salFixe * 0.05
Else
If ancienneté > 10 Then
primeAncienneté = salFixe * 0.1
End If
End If
nbreXL100 = InputBox("combien de XL100 ont été vendus?")
caXL100 = nbreXL100 * XL100
If nbreXL100 > 49 Then
comissionXL100 = (nbreXL100) * XL100 * 0.06
Else: comissionXL100 = 0
End If
nbreXS50 = InputBox("combien de XS50 ont été vendus?")
If nbreXS50 < 21 Then
comissionXS50 = nbreXS50 * 180 * 0.04
Else
If nbreXS50 < 51 And nbreXS50 < 21 Then
comissionXS50 = 20 * 180 * 0.04 + (nbreXS50 - 20) * 180 * 0.06
Else
If nbreXS50 > 50 And nbreXS50 < 51 And nbreXS50 < 21 Then
comissionXS50 = 20 * 180 * 0.04 + 30 * 180 * 0.06 + (nbreXS50 - 50) * 180 * 0.1
End If
End If
End If
salaire = salFixe + primeAncienneté + comissionXL100 + comissionXS50
a priori vianndu44 essaye de trouver le résultat donné dans l'exemple de son sujet et ... cet exemple est faux:
on fixe 50 XS50 vendus et on fait le calcul avec 100 !!
exemple 60 srfs vendus xl100 et 50 xs50 12 ans dancienneté fixe=1100*10 comission xl100=10*350*6% xs50=20*180*4%+30*180*6%+(100-50)*180*10
on fixe 50 XS50 vendus et on fait le calcul avec 100 !!
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 430
6 janv. 2011 à 19:06
6 janv. 2011 à 19:06
re
ton post 10
60 srfs vendus xl100 et 50 xs50 12 ans dancienneté
bon, tout ceci n'est pas bien grave
un merci serait quand même le bienvenu
bonne suite .... et fin
ton post 10
60 srfs vendus xl100 et 50 xs50 12 ans dancienneté
bon, tout ceci n'est pas bien grave
un merci serait quand même le bienvenu
bonne suite .... et fin
5 janv. 2011 à 20:55