Macro

juju782

XLDnaute Nouveau
Bonjour

dans un exo on me demande:

Question 1:
Ecrire un programme qui lors de son exécution:
1- Attribue à deux variables x et y une valeur entière tirée au hasard comprise entre 0 et 49
2- Affiche ces valeurs à l'utilisateur en lui demandant quelle est la plus petite, et recueille
sa réponse.
3- puis affiche «bonne réponse!» ou «mauvaise réponse!» selon la réponse de
l'utilisateur.

j'ai fais:

Sub macro()
Dim x As Integer
Dim y As String
x = Int(Rnd() * 50)
y = Int(Rnd() * 50)
MsgBox (" x vaut " & " " & x & " " & "et y vaut " & " " & y)

MsgBox ("quelle est la plus petite valeur?")

mais après je bloque, comment savoir si l'utilisateur a juste ou non ?
 

dudu29

XLDnaute Nouveau
Re : Macro

Salut,
au lieu de msgboxMsgBox ("quelle est la plus petite valeur?")
ecris
rep=inputbox("quelle est la plus petite valeur ?")
if (y>x and val(rep)=x) or (y<x and val(rep)=Y) then
msgbox "bonne reponse !"
else
msgbox "Mauvaise reponse !"
end if

Voilà
@+ Dudu
 

Pierrot93

XLDnaute Barbatruc
Re : Macro

Bonjour Juju, Dudu

une autre solution, pour le fun :

Code:
Option Explicit
Sub test()
Dim x As Integer, y As Integer, confirm As Integer
'initialise le générateur de nombre aléatoire
Randomize
x = Int(Rnd * 50)
'une boucle pour éviter l'égalité
Do
    y = Int(Rnd * 50)
Loop While y = x
confirm = MsgBox(IIf(x > y, x & " est supérieur à " & y & " ?", x & " est inférieur à " & y & " ?"), vbYesNo)
If confirm = 6 Then MsgBox "Gagné !!!" Else MsgBox "Perdu !!!"
End Sub

ou pour demander la plus petite :
Code:
confirm = MsgBox(IIf(x > y, y & " est inférieur à " & x & " ?", x & " est inférieur à " & y & " ?"), vbYesNo)
If confirm = 6 Then MsgBox "Gagné !!!" Else MsgBox "Perdu !!!"

bonne journée
@+
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Macro

Re

un peu plus court :

Code:
Option Explicit
Sub test()
Dim x As Integer, y As Integer
'initialise le générateur de nombre aléatoire
Randomize
x = Int(Rnd * 50)
'une boucle pour éviter l'égalité
Do
    y = Int(Rnd * 50)
Loop While y = x
If MsgBox(IIf(x > y, x & " est supérieur à " & y & " ?", x & " est inférieur à " & y & " ?"), vbYesNo) _
    = 6 Then MsgBox "Gagné !!!" Else MsgBox "Perdu !!!"
End Sub

ou :

Code:
If MsgBox(IIf(x > y, y & " est inférieur à " & x & " ?", x & " est inférieur à " & y & " ?"), vbYesNo) _
    = 6 Then MsgBox "Gagné !!!" Else MsgBox "Perdu !!!"

@+
 

Discussions similaires

Réponses
7
Affichages
549

Statistiques des forums

Discussions
312 310
Messages
2 087 128
Membres
103 479
dernier inscrit
Compta