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 Discussion :

je ne comprend pas le problème


Sujet :

VBA

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 24
    Points : 17
    Points
    17
    Par défaut je ne comprend pas le problème
    je viens tout juste d'essayer de comprendre le VBA.
    Je dois faire un programme pour mon cours. Je dois convertir de l'euro en francs et du francs en euro.

    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
    Voici mon programme:
    Sub TestInputBox()
      Dim Reponse As String
      Dim Prixe As Integer
      Dim Prixf As Integer
    MsgBox ("Bonjour")
    MsgBox ("1 Convertir de l'euro en francs")
    MsgBox ("2 Convertir du francs en euro")
      Reponse = InputBox("Entrez votre choix")
      MsgBox Reponse
        If Reponse = 1 Then
       Prixe = InputBox("Entrez votre prix en euros")
      MsgBox Prixe
    Prixf = Prixe / 6.55957
    MsgBox ("cela fait en francs" + Prixf)
      Else
    Prixf = InputBox("Entrez votre prix en francs")
      MsgBox Prixf
       Prixe = Prixf * 6.55957
    MsgBox ("cela fait en euros" + Prixe)
      End If
    End Sub
    mon programme est bon jusqu'au moment où il doit faire le calcul. Apparement j'ai fait un test, et il ne calcule pas.

    Pourriez vous me dire si j'ai fait une erreur en écrivant mon programme car je ne vois pas où est mon erreur.

    Merci beaucoup pour toutes les réponses que vous pourrez m'apporter. Désolé si un topic existait déjà à ce sujet, je ne l'ai pas trouvé.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Revoie tes déclarations de variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim Reponse As Integer
      Dim Prixe As Currency
      Dim Prixf As Currency
    Tu as mis string pour le premier alors que tu récupéres une valeur
    Pour les prix tu les calculs en entier, alors que tu dois avoir des centimes.

    Va jeter un coup d'oeil à ce tuto de SilkyRoad.

    Starec

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Merci pour ta réponse, je vais revoir mes déclarations de variables.

    J'ai modifié les déclarations de mes variables mais il me dit toujours qu'il y a une erreur à la ligne 13

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    mais il me dit toujours qu'il y a une erreur à la ligne 13
    pour cette erreur là, cela viens du + dans ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ("cela fait en francs" + Prixf)
    tu dois utiliser le &
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ("cela fait en francs" & Prixf)

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par alsimbad
    pour cette erreur là, cela viens du + dans ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ("cela fait en francs" + Prixf)
    tu dois utiliser le &
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox ("cela fait en francs" & Prixf)
    Merci beaucoup, maintenant ça marche.


  6. #6
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Vachement lourd ton programme !
    Tant de lignes pour si peu !

    Essaie plutôt :

    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
     
    Sub TestInputBox()
        Dim Prixe As Currency
        Dim Prixf As Currency
        Select case Application.InputBox("Bonjour" & vbNewLine & _
            " Tapez 1 pour convertir de l'euro en francs" & vbNewLine & _
            " Tapez 2 pour convertir du francs en euro", Type:=1)
            Case 1
                Prixe = Application.InputBox("Entrez votre prix en euros", Type:=1)
                Prixf = Prixe / 6.55957
                MsgBox (prixe & " € =>" & Prixf & " FRF")
            Case 2
                Prixf = Application.InputBox("Entrez votre prix en francs", Type:=1)
                Prixe = Prixf * 6.55957
                MsgBox (Prixf & " FRF =>" & prixe & " €" )
            Case else
                'rien à faire... saisie incorrecte du code
        End Select
    End Sub
    les avantages :
    1. Moins de variables, puisque tu testes directement le résultat de la première application.inputbox
    2. Moins de boîtes de dialogues qui s'ouvrent partout (très amusant au début, mais tellement lourd à la fin !)
    3. Application.Inputbox (bibliothèque VBA)de type 1 te permet d'être sûr(e) de récupérer un numérique, alors que InputBox te renvoie systématiquement un String
    4. Le fait de typer correctement ta variable, avec le code que tu as fait (reponse=Integer) pose un souci qui se règle en variant puisque ton inputBox te renvoie un String. Donc, une belle conversion de type a lieu, si c'est possible. Mais si ce que tu écris dans ton inputbox n'est pas un nombre => Erreur

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

Discussions similaires

  1. Problème design que je ne comprend pas
    Par kimimsc dans le forum Services Web
    Réponses: 0
    Dernier message: 03/05/2010, 15h50
  2. Réponses: 33
    Dernier message: 02/02/2009, 22h25
  3. Problème de contrainte que je ne comprend pas
    Par trattos dans le forum Langage SQL
    Réponses: 0
    Dernier message: 15/07/2008, 11h28
  4. Problème Hors Limite que je ne comprends pas
    Par Bleys dans le forum Delphi
    Réponses: 2
    Dernier message: 11/01/2007, 15h42
  5. [JDOM] Probléme que je ne comprend pas
    Par kaninama dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 23/05/2006, 15h01

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