Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
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 10/05/2007, 16h36   #1
Invité régulier
 
Inscription : février 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 23
Points : 7
Points : 7
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 :
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é.
WomanPSG76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 16h44   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 625
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 625
Points : 30 924
Points : 30 924
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Revoie tes déclarations de variables

Code :
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
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 16h45   #3
Invité régulier
 
Inscription : février 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 23
Points : 7
Points : 7
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
WomanPSG76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 17h09   #4
Membre Expert
 
Inscription : novembre 2006
Messages : 1 465
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 1 465
Points : 1 411
Points : 1 411
Citation:
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 :
MsgBox ("cela fait en francs" + Prixf)
tu dois utiliser le &
Code :
MsgBox ("cela fait en francs" & Prixf)
alsimbad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 17h17   #5
Invité régulier
 
Inscription : février 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 23
Points : 7
Points : 7
Citation:
Envoyé par alsimbad
pour cette erreur là, cela viens du + dans ta ligne
Code :
MsgBox ("cela fait en francs" + Prixf)
tu dois utiliser le &
Code :
MsgBox ("cela fait en francs" & Prixf)
Merci beaucoup, maintenant ça marche.

WomanPSG76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2007, 08h03   #6
Rédacteur

 
Avatar de Maxence HUBICHE
 
Homme Maxence HUBICHE
Formateur et Développeur - Conseil en Informatique
Inscription : juin 2002
Messages : 3 687
Détails du profil
Informations personnelles :
Nom : Homme Maxence HUBICHE
Âge : 42
Localisation : France, Val d'Oise (Île de France)

Informations professionnelles :
Activité : Formateur et Développeur - Conseil en Informatique

Informations forums :
Inscription : juin 2002
Messages : 3 687
Points : 6 516
Points : 6 516
Envoyer un message via MSN à Maxence HUBICHE Envoyer un message via Skype™ à Maxence HUBICHE
Vachement lourd ton programme !
Tant de lignes pour si peu !

Essaie plutôt :

Code :
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
__________________
1formaxion, une formation de qualité, des formateurs compétents
Mes tutoriels et vidéos :
Tableaux croisés dynamiques, Access les Bases, et les autres !
Maxence HUBICHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h07.


 
 
 
 
Partenaires

Hébergement Web