Problème avec les Boucles sur VBA

clot

XLDnaute Nouveau
Bonjour,

J'ai un exercice à résoudre avec les boucles que je n'arrive pas à résoudre ...

Enoncé :
écrire un programme qui demande la saisie d’une valeur. La saisie sera
répétée tant que la valeur saisie n’est pas comprise entre 0 et n, n étant une
valeur choisie par l’utilisateur.Reprendre le programme réalisé en 1.1 et compter le nombre
d’exécutions de la boucle qui sera affiché à la fin de la boucle.

J'ai déjà réalisé le programme en 1.1 mais je n'arrive pas à faire la suite avec le comptage.

Sub exo ()
Dim n As Integer, v As Integer
n = InputBox("Borne sup de l'intervalle?")
Do
v = InputBox(" entrez une valeur entre 0 et " & n)
Loop While (v > n) Or (v < 0)
msgbox ("valeur correcte entrée:" & v)
End Sub


Merci pour votre aide !!
 

JBARBE

XLDnaute Barbatruc
Re : Problème avec les Boucles sur VBA

Un petit problème se posait dans la solution précédente !

1)Écrire un programme qui demande à l’utilisateur de saisir n valeurs (n
saisi par l’utilisateur), calcule la somme des n valeurs ainsi que la moyenne.

Calcul du Total et de la Moyenne de 10 nombres ou inférieur

Code:
Sub tuto5()
' Calcul du Total et de la Moyenne de 10 nombres
Dim sNbre As Currency, xNbre As Currency, zNbre As Currency, i As Currency, yNbre As Currency, _
wNbre As Currency, oNbre As Currency, pNbre As Currency, qNbre As Currency, rNbre As Currency, tNbre As Currency
Dim Total As Currency
For i = 1 To 10
If i = 1 Then
sNbre = InputBox("entrer la valeur 1 sur 10.....", , sNbre)
ElseIf i = 2 Then
xNbre = InputBox("entrer la valeur 2 sur 10.....", , xNbre)
Réponse = MsgBox("Souhaitez vous 2 valeurs additionnées seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 3 Then
zNbre = InputBox("entrer la valeur 3 sur 10.....", , zNbre)
Réponse = MsgBox("Souhaitez vous 3 valeurs additionnées seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 4 Then
yNbre = InputBox("entrer la valeur 4 sur 10.....", , yNbre)
Réponse = MsgBox("Souhaitez vous 4 valeurs additionnées seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 5 Then
wNbre = InputBox("entrer la valeur 5 sur 10.....", , wNbre)
Réponse = MsgBox("Souhaitez vous 5 valeurs additionnées seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 6 Then
oNbre = InputBox("entrer la valeur 6 sur 10.....", , oNbre)
Réponse = MsgBox("Souhaitez vous 6 valeurs additionnées seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 7 Then
pNbre = InputBox("entrer la valeur 7 sur 10.....", , pNbre)
Réponse = MsgBox("Souhaitez vous 7 valeurs additionnées seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 8 Then
qNbre = InputBox("entrer la valeur 8 sur 10.....", , qNbre)
Réponse = MsgBox("Souhaitez vous 8 valeurs additionnées seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 9 Then
rNbre = InputBox("entrer la valeur 9 sur 10.....", , rNbre)
Réponse = MsgBox("Souhaitez vous 9 valeurs additionnées seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 10 Then
tNbre = InputBox("entrer la valeur 3 sur 3.....", , tNbre)
End If
Total = sNbre + xNbre + zNbre + yNbre + wNbre + oNbre _
+ pNbre + qNbre + rNbre + tNbre
Moyenne = (sNbre + xNbre + zNbre + yNbre + wNbre + oNbre _
+ pNbre + qNbre + rNbre + tNbre) / i
vReponse = MsgBox("Totaux des Valeurs de...." & i & "..nombre(s).....=" & Total, vbInformation, "REPONSE")
vReponse1 = MsgBox("Moyenne des Valeurs de...." & i & "..nombre(s).....=" & Moyenne, vbInformation, "REPONSE")
If Réponse = vbYes Then Exit For
Next i
End Sub
 
Dernière édition:

JBARBE

XLDnaute Barbatruc
Re : Problème avec les Boucles sur VBA

2) Modifier le programme précédent pour calculer une moyenne pondérée
(un poids sera en plus saisi à chaque nouvelle valeur).

Comme précédemment avec un calcul de la moyenne pondérée avec 10 valeurs et 10 coefficients différents maximum:

Code:
Sub Tuto1()
' calcul de la moyenne pondérée avec 10 valeurs et 10 coefficients  différents
Dim i As Integer
Dim sNbre1 As Currency, sNbre2 As Currency, xNbre1 As Currency, zNbre As Currency, _
zNbre1 As Currency, zNbre2 As Currency, xNbre2 As Currency, sNbre3 As Currency, xNbre3 As Currency, _
zNbre3 As Currency, sNbre4 As Currency, xNbre4 As Currency, zNbre4 As Currency, _
sNbre5 As Currency, xNbre5 As Currency, zNbre5 As Currency, _
sNbre6 As Currency, xNbre6 As Currency, zNbre6 As Currency, _
sNbre7 As Currency, xNbre7 As Currency, zNbre7 As Currency, _
sNbre8 As Currency, xNbre8 As Currency, zNbre8 As Currency, _
sNbre9 As Currency, xNbre9 As Currency, zNbre9 As Currency, _
sNbre10 As Currency, xNbre10 As Currency, zNbre10 As Currency
Dim TotalPoids As Currency
Dim Total As Currency
For i = 1 To 10
If i = 1 Then
sNbre1 = InputBox("Entrer la valeur pour 1 sur 10.....", , sNbre1)
xNbre1 = InputBox("Entrer les coefficients respectifs pour 1 sur 3.....", , xNbre1)
zNbre1 = sNbre1 * xNbre1
ElseIf i = 2 Then
sNbre2 = InputBox("Entrer la valeur pour 2 sur 10.....", , sNbre2)
xNbre2 = InputBox("Entrer les coefficients respectifs pour 2 sur 3.....", , xNbre2)
zNbre2 = sNbre2 * xNbre2
Réponse = MsgBox("Souhaitez vous 2 valeurs et 2 poids seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 3 Then
sNbre3 = InputBox("Entrer la valeur pour 3 sur 10.....", , sNbre3)
xNbre3 = InputBox("Entrer les coefficients respectifs pour 3 sur 3.....", , xNbre3)
zNbre3 = sNbre3 * xNbre3
Réponse = MsgBox("Souhaitez vous 3 valeurs et 3 poids seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 4 Then
sNbre4 = InputBox("Entrer la valeur pour 4 sur 10.....", , sNbre4)
xNbre4 = InputBox("Entrer les coefficients respectifs pour 4 sur 10.....", , xNbre4)
zNbre4 = sNbre4 * xNbre4
Réponse = MsgBox("Souhaitez vous 4 valeurs et 4 poids seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 5 Then
sNbre5 = InputBox("Entrer la valeur pour 5 sur 10.....", , sNbre5)
xNbre5 = InputBox("Entrer les coefficients respectifs pour 5 sur 10.....", , xNbre5)
zNbre5 = sNbre5 * xNbre5
Réponse = MsgBox("Souhaitez vous 5 valeurs et 5 poids seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 6 Then
sNbre6 = InputBox("Entrer la valeur pour 6 sur 10.....", , sNbre6)
xNbre6 = InputBox("Entrer les coefficients respectifs pour 6 sur 10.....", , xNbre6)
zNbre6 = sNbre6 * xNbre6
Réponse = MsgBox("Souhaitez vous 6 valeurs et 6 poids seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 7 Then
sNbre7 = InputBox("Entrer la valeur pour 7 sur 10.....", , sNbre7)
xNbre7 = InputBox("Entrer les coefficients respectifs pour 7 sur 10.....", , xNbre7)
zNbre7 = sNbre7 * xNbre7
Réponse = MsgBox("Souhaitez vous 7 valeurs et 7 poids seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 8 Then
sNbre8 = InputBox("Entrer la valeur pour 8 sur 10.....", , sNbre8)
xNbre8 = InputBox("Entrer les coefficients respectifs pour 8 sur 10.....", , xNbre8)
zNbre8 = sNbre8 * xNbre8
Réponse = MsgBox("Souhaitez vous 8 valeurs et 8 poids seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 9 Then
sNbre9 = InputBox("Entrer la valeur pour 9 sur 10.....", , sNbre9)
xNbre9 = InputBox("Entrer les coefficients respectifs pour 9 sur 10.....", , xNbre9)
zNbre9 = sNbre9 * xNbre9
Réponse = MsgBox("Souhaitez vous 9 valeurs et 9 poids seulement" & Chr(10), vbYesNo + vbInformation, "ATTENTION")
ElseIf i = 10 Then
sNbre10 = InputBox("Entrer la valeur pour 10 sur 10.....", , sNbre10)
xNbre10 = InputBox("Entrer les coefficients respectifs pour 10 sur 10.....", , xNbre10)
zNbre10 = sNbre10 * xNbre10
End If
zNbre = zNbre1 + zNbre2 + zNbre3 + zNbre4 + zNbre5 _
+ zNbre6 + zNbre7 + zNbre8 + zNbre9 + zNbre10
TotalPoids = xNbre1 + xNbre2 + xNbre3 + xNbre4 + xNbre5 _
+ xNbre6 + xNbre7 + xNbre8 + xNbre9 + xNbre10
Total = zNbre / TotalPoids
vReponse = MsgBox("Moyenne Pondérée valeurs et coefficients de 1 à.." & i & ".....=" & Total, vbInformation, "REPONSE")
If Réponse = vbYes Then Exit For
Next i
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 480
Messages
2 088 757
Membres
103 948
dernier inscrit
atmosfaire