IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

pythagore table de multiplication


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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,

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    salut,

    il faut revoir soit tes tests soit tes boucles,

    avec une syntaxe comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 )
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre Expert
    Femme Profil pro
    Data engineer
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Data engineer
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Par défaut
    Bonjour,
    Essai avec une seule boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        While nb1 > 10 Or nb1 < 0
            nb1 = InputBox("veuillez rentrez un nombre 1")
            total = nb1
        Wend

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Février 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 198
    Par défaut
    Une autre solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre éclairé

    Inscrit en
    Janvier 2005
    Messages
    532
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 532
    Par défaut
    salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. [ADO.NET] remplaire datagrid "depuis table relation multiple"
    Par hoda dans le forum Accès aux données
    Réponses: 3
    Dernier message: 05/12/2006, 08h49
  2. Réponses: 1
    Dernier message: 29/09/2006, 10h43
  3. table de multiplication
    Par spacergirly dans le forum Excel
    Réponses: 3
    Dernier message: 21/09/2006, 17h24
  4. [T-SQL] exécuter un ALTER TABLE/COLUM multiple
    Par elderion dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 07/10/2005, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo