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 !!
 

néné06

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

Bonjour clot,

Si j'ai bien compris, un exemple ?

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


A+

René
 

clot

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

Merci pour votre réponse !! Pourquoi on doit mettre X= 0 ?

J'ai une autre question je n'arrive pas à différencier lorsque l'on doit utiliser DO ... Loop et For .. Step Next ?
 

gilbert_RGI

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

Bonjour et Bienvenue sur XLD

est-ce que ça répond à la demande

Sub ChkFirstUntil()
Dim n As Integer, v As Integer
n = InputBox("Borne sup de l'intervalle?")
counter = 0
myNum = n
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "La boucle a effectué " & counter & " itérations."
End Sub
 

néné06

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

Re,

J'ai mis x =0 qui est un index qui va compter le nombre de boucles exécutées car à chaque fois qu'une boucle se réalise, le x augmente de 1 (x = x + 1).

Pour For ....step....next
le step donne l'incrémentation du pas (positif ou négatif).

Ex:
For i = 1 to 10 step2
next i
Prendra comme valeur pour i :1,3,5,7,9 et sortie après
For i = 10 to 1 step-2
next i
Prendra comme valeur pour i :9,7,5,3,1 et sortie après

Pour do..loop, voir les explications dans l'aide VBA (?) de l'editeur VBA (Alt F11).


A+

René

Edit: Salut Gilbert
 

JBARBE

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

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 !!

Bonjour,

Peut-être ceci :

Code:
Sub exo()
Dim i As Integer
Dim n As Integer, v As Integer
n = InputBox("Borne sup de l'intervalle?")
v = InputBox(" entrez une valeur entre 0 et " & n)
MsgBox ("valeur correcte entrée:" & v)
For i = 0 To n
 If v = i Then
MsgBox ("nombre d'exécution de la boucle:" & i)
Else
i = i + 1
 End If
Next i
End Sub
 

clot

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

J'ai essayé de faire un autre exercice est ce que c'est juste si je fais ce programme :

Enoncé : Ecrire un programme qui compte le nombres de notes saisies inférieur à 10

Sub tuto5()
Dim i As Integer, saisie As String, n As Integer
i = 0
saisie = InputBox("Nombre de notes inf à 10 ?")
Do
i = i + 1
n = InputBox(" saisir les notes ")

Loop While saisie < 10
msgbox ("nbre de note inf 10:" & n)
End Sub
 

JBARBE

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

Comme ceci ! Mais la boucle ne sert à rien puisqu'elle ne sert qu'à répéter x

Sub tuto5()
Dim x As Integer, i As Integer
x = InputBox("Nombre de notes inf à 10 ?")
For i = 1 To 10
If i = x Then
MsgBox ("nbre de note inf 10 =" & i)
Exit For
End If
Next i
End Sub
 
Dernière édition:

JBARBE

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

Do loop veut dire tant que
For 1 to 10 veut dire que la boucle va être exécutée de 1 à 10 fois ( j'aurais dû mettre jusqu'à 9) :
Sub tuto5()
Dim x As Integer, i As Integer, y As Integer
x = InputBox("Nombre de notes inf à 10 ?")
Do While x >= 10
y = InputBox("Veuillez mettre un nombre inférieur à 10")
If y < 10 Then Exit Do
Loop
For i = 1 To 9
If i = x Then
MsgBox ("nbre de note inf 10 =" & i)
Exit For
ElseIf i = y Then
MsgBox ("nbre de note inf 10 =" & i)
Exit For
End If
Next i
End Sub

lorsque x ou y sont trouvés la macro s'arrête > exit for

J'ai rajouté do While pour que la saisie soit bien inférieur à 10 sinon elle se répète jusqu'à la bonne saisie ( inf à 10)
 
Dernière édition:

clot

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

D'accord ! Merci !!
Je commence à mieux comprendre ! Et on a le droit d'utiliser dans un même programme 2 boucles ?

J'avais aussi deux autre exercices à résoudre mais je ne sais pas du tout comment on fait ?! :s

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.

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

JBARBE

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

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.

Code:
Sub tuto5()
Dim n As Integer, o As Integer
n = InputBox("Valeur 1")
o = InputBox("Valeur 2")
Total = n + o
Moyenne = (n + o) / 2
vReponse = MsgBox("Totaux des Valeurs 1 et 2  =" & Total, vbInformation, "REPONSE")
vReponse1 = MsgBox("Totaux des Valeurs 1 et 2  =" & Moyenne, vbInformation, "REPONSE")
End Sub
 

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).

Code:
Sub tuto5()
Dim n As Integer, o As Integer
n = InputBox("Valeur")
o = InputBox("Poids")
Coefficient = n * o
Total = (Coefficient) / o
vReponse = MsgBox("Moyenne Pondérée  =" & Total, vbInformation, "REPONSE")
End Sub
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 957
Membres
103 990
dernier inscrit
lamiadebz