Bonjour j'ai un problème sur le code qui me permettrai d'afficher le coût total des voyages pour étudiants. Voici des captures:
Pièce jointe 592696
Pièce jointe 592697
Version imprimable
Bonjour j'ai un problème sur le code qui me permettrai d'afficher le coût total des voyages pour étudiants. Voici des captures:
Pièce jointe 592696
Pièce jointe 592697
Bonjour,
La capture permet le voir le problème : des paranthèses en trop et des & manquants
Ceci dit il faut aussi publier le code (par copier/coller) balisé avec le bouton #.
Ça nous permet de copier/coller le code depuis le site vers un fichier sans avoir à tout réécrire.
(Aucun contributeur ne perdra son temps à ça, il y a d'autres questions sans réponse).
Et ça permet de proposer une correction.
Comment trouve-t-on le code qu'il faut insérer?
Bonsoir,
le code c'est ta macro "Sub Macro1"
tu clique sur le bouton "#" c'est la balise code, (voir image ci-dessous) tu prends la totalité de la macro et la coller dans le entre les accolades
["CODE]coller la macro ici[/CODE"]
Pièce jointe 592709
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
28
29
30 Sub Macro1() 'Dim i As Integer Dim eleve As Integer Dim Prix_Traj As Single Dim Prix_Aub As Single Dim Prix_Repas As Single Dim Nbr_Jour As Integer Dim Coût_total As Single Dim Cout_étudiant As Single i = 0 For i = 0 To eleve eleve = InputBox("Quel est le nombre d'élève?") If eleve <= 24 Then Prix_Traj = Prix_Traj + 152.5 Else Prix_Traj = Prix_Traj + 130 If eleve <= 20 Then Prix_Aub = Prix_Aub + 15.8 Else If eleve <= 35 Then Prix_Aub = Prix_Aub + 12.2 Else Prix_Aub = Prix_Aub + 10 End If Nbr_Jour = InputBox("Combien de jours?") Prix_Repas = eleve * 7.5 Cout_etudiant = Cout_total / eleve MsgBox ("Avec") & eleve("etudiants durant") & Nbr_Jour("jours, le cout total du voyage est de") & Cout_total("euros et le cout par étudiant est de") Next End Sub
Bonjour,
Je ne sais pas si prix_aub est individuel ou collectif, je l'ai considéré individuel, voici ce que j'aurais écrit :
Note : le type Currency est particulièrement adapté aux calculs monétaires.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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 Option Explicit Sub Macro1() Dim eleve As Variant Dim nbr_Jour As Variant Dim prix_Traj As Currency Dim prix_Aub As Currency Dim prix_Repas As Currency Dim cout_Total As Currency Dim cout_Etudiant As Currency Do eleve = Application.InputBox("Quel est le nombre d'élève?", Type:=1) ' Demander le nombre d'élèves If Int(eleve) <> eleve Then MsgBox "Saisir un nombre entier", vbExclamation ' Message si réponse nombre décimal Loop While Not eleve = False And Int(eleve) <> eleve ' Recommencer si réponse incorrecte If Not eleve = False Then ' Si réponse élève n'est pas "Annuler" Do nbr_Jour = Application.InputBox("Combien de jours?", Type:=1) ' Demander le nombre de jours If Int(nbr_Jour) <> nbr_Jour Then MsgBox "Saisir un nombre entier", vbExclamation ' Message si réponse nombre décimal Loop While Not nbr_Jour = False And Int(nbr_Jour) <> nbr_Jour ' Recommencer si réponse incorrecte End If If Not (eleve = False Or nbr_Jour = False) Then ' Si pas de réponse "Annuler" ' Prix trajet Select Case eleve Case 0 Case 1 To 24 prix_Traj = 152.5 Case Else prix_Traj = 130 End Select ' Prix Aub Select Case eleve Case 0 Case 1 To 20 prix_Aub = eleve * 15.8 Case 21 To 35 prix_Aub = eleve * 12.2 Case Else prix_Aub = eleve * 10 End Select prix_Repas = eleve * 7.5 cout_Total = prix_Traj + prix_Aub + prix_Repas cout_Etudiant = cout_Total / eleve MsgBox "Avec " & eleve & " etudiants durant " & nbr_Jour & " jours," & vbCr & _ "le cout total du voyage est de " & Format(cout_Total, "0.00") & " euros et" & vbCr & _ "le cout par étudiant est de " & Format(cout_Etudiant, "0.00") & " euros" End If
Ceci fait, je ne vois pas pourquoi tu utilises VBA, c'est tellement plus simple avec Excel !!!!
Il faut toujours penser Excel avant d'envisager VBA
Salut.
Je suppose que c'est un "exercice" de programmation, du style de ceux que l'on pourrait écrire en C ou en C++, et que c'est dans le cadre d'une formation à la programmation que "on" demande cela. Je n'ai jamais compris pourquoi on ne donnait pas des exercices adaptés mais bon...