Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/02/2011, 09h32   #1
Invité de passage
 
Inscription : février 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 3
Points : 0
Points : 0
Par défaut pythagore table de multiplication

Bonjour,

Je cherche à faire une table de multiplication avec restriction des variables compris entre 0 et 10.

ci-dessous mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub pythagore()
 
Dim nb1 As Integer
Dim nb2 As Integer
Dim total As Integer
Const fin = 10
 
nb1 = InputBox("veuillez rentrez un nombre 1")
    While nb1 > 10
        While nb1 < 0
            nb1 = InputBox("veuillez rentrez un nombre 1")
            total = nb1
        Wend
    Wend
 
nb2 = InputBox("veuillez rentrez un nombre 2")
    While nb2 > 10
        While nb2 < 0
            nb2 = InputBox("veuillez rentrez un nombre 2")
            total = nb1 * nb2
        Wend
    Wend
 
total = nb1 * nb2
total = MsgBox("resultat : " & total)
 
End Sub
Lorsque je lance mon algo avec une variable > 10 ou < 0, Access plante et ne prend pas mes boucles "tant que". comment dois je procéder?

Merci par avance,
Zerphe39 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 11h37   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 743
Points : 10 743
Envoyer un message via MSN à jpcheck
salut,

il faut revoir soit tes tests soit tes boucles,

avec une syntaxe comme ceci
Code :
1
2
3
4
While nb1 > 10
        While nb1 < 0
        Wend
Wend
tu ne pourrais jamais rentrer dans les deux boucles (a ma connaissance aucune nombre negatif n'est superieur a 10 )
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 16h47   #3
Membre Expert
 
Femme
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 480
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ain (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : juin 2007
Messages : 480
Points : 1 024
Points : 1 024
Bonjour,
Essai avec une seule boucle :
Code :
1
2
3
4
5
 
    While nb1 > 10 Or nb1 < 0
        nb1 = InputBox("veuillez rentrez un nombre 1")
        total = nb1
    Wend
tedo01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2011, 18h59   #4
Membre habitué
 
Inscription : février 2005
Messages : 186
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 186
Points : 114
Points : 114
Une autre solution :
Code :
1
2
3
4
5
6
7
8
9
10
11
Private Function NombreValide(Msg As String) As Integer
On Error Resume Next
    Do
        NombreValide = InputBox(Msg)
        If NombreValide > 0 And NombreValide < 11 Then Exit Function
    Loop
End Function
 
Sub Multiplication()
    MsgBox NombreValide("Saisir un premier nombre entre 1 et 10") * NombreValide("Saisir un deuxième nombre entre 1 et 10")
End Sub
OtObOx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2011, 16h26   #5
Membre éclairé
 
Inscription : janvier 2005
Messages : 445
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 445
Points : 348
Points : 348
salut,
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
Sub pythagore()
 
Dim nb1 As Integer
Dim nb2 As Integer
Dim total As Integer
Const fin = 10
 total=1
nb1 = InputBox("veuillez rentrez un nombre 1")
    While nb1 > 10 and nb1 < 0
       nb1 = InputBox("veuillez rentrez un nombre 1")
       Wend
   total =total*nb1
 
nb2 = InputBox("veuillez rentrez un nombre 2")
    While nb2 > 10 and nb2 < 0
            nb2 = InputBox("veuillez rentrez un nombre 2")
        Wend
 total = nb1 * nb2
total = MsgBox("resultat : " & total)
 End Sub
si j'ai bien compris votre problème
Bonne Chance
__________________
Deux, n'apprendront pas; le timide et l'arrogant
hocine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h50.


 
 
 
 
Partenaires

Hébergement Web