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

Macros et VBA Excel Discussion :

problème basique erreur de code [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Par défaut problème basique erreur de code
    Bonjour à tous,
    j'ai eu beau relire 50 fois mon code je saisis pas où est l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub n()
        Dim x As Variant
        For x = 2 To 4
            For i = 1 To 10
                o = InputBox("combien font " & x & "x" & i & "?")
                If o = x * i Then
                    MsgBox ("Bravo, Nestor")
                Else
                    MsgBox ("Raté, Nestor")
                End If
            Next i
        Next x
    End Sub
    ça me mets toujours : "erreur Nestor", même quand c'est bon.
    Une idée ?

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Les choses iront probablement mieux en typant en numérique ce qui doit l'être et en convertissant en numérique la saisie (de type string) par inputbox --->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim x As integer, i As integer, o As string
        For x = 2 To 4
            For i = 1 To 10
                o = InputBox("combien font " & x & "x" & i & "?")
                If val(o) = x * i Then
                    MsgBox ("Bravo, Nestor")
                Else
                    MsgBox ("Raté, Nestor")
                End If
            Next i
        Next x

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2019
    Messages : 41
    Par défaut table de multiplication de 2 à 4
    Effectivement, ça fonctionne mieux ainsi. Je pensais que si l'on donnait du chiffre à manger à l'inputbox il le convertirait de lui-même. Mais non. Faut tout lui dire...

    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
    28
    29
    30
    31
    Sub h()
        Dim x As Integer
        Dim o As String
        Dim k As Integer
        Dim i As Integer
        Dim w As String
        Dim q As String
        For x = 2 To 4
            For i = 1 To 10
                o = InputBox("combien font " & x & "x" & i & "?")
                If Val(o) = x * i Then
                    MsgBox ("Bravo, Nestor")
                Else
                    MsgBox ("Raté, Nestor. La bonne réponse était : " & x * i)
                    k = k + 1
                End If
            Next i
            MsgBox ("votre nombre total d'erreurs est de : " & k)
            If x < 4 Then
                w = InputBox("souhaitez-vous quitter le programme (q) ou poursuivre (p) à la table suivante ?")
                If w = "q" Then
                    MsgBox ("a+ dans l'bus")
                    Exit Sub
                ElseIf w = "p" Then
                    MsgBox ("dac c'est reparti pour un tour mon lapin")
                End If
            Else
                MsgBox ("programme terminé.")
            End If
        Next x
    End Sub
    Voici le code quelque peu augmenté et fonctionnel.

    Par ailleurs, comment aurions-nous pu faire sans la bienheureuse fonction Val() ? Quels autres procédés de transtypage en VBA ?

    Je marque la question comme résolue.

    Soyez bien remercié.

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Quels autres procédés de transtypage en VBA ?
    Je suis allé dans l'aide VBA interne, y ai frappé le mot "conversion" et ai ouvert, parmi les rubriques proposées, celle-ci, dont le nom m'a paru assez explicite :
    Fonctions de conversion de types de données
    Bonne lecture

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/01/2014, 19h34
  2. Problème de complétion de code et d'affichage d'erreurs
    Par HenriPierre dans le forum Eclipse C & C++
    Réponses: 0
    Dernier message: 29/10/2012, 18h27
  3. Problème d'erreur code
    Par Vanessa48 dans le forum Android
    Réponses: 13
    Dernier message: 12/02/2011, 08h44
  4. Problème macro erreur code
    Par yayasiano dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 01/03/2009, 15h56
  5. Réponses: 24
    Dernier message: 27/01/2009, 09h18

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