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:
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:
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.
Cordialement,
Patrice
Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.
Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur
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"]
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 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 : 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
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
Cordialement,
Patrice
Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.
Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur
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...
"Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
---------------
Mes billets de blog sur DVP
Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
---------------
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager