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 VBA Excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Problème VBA Excel
    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:
    Nom : VBA code.PNG
Affichages : 142
Taille : 36,3 Ko
    Nom : VBA code 2.PNG
Affichages : 145
Taille : 44,8 Ko

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    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

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Comment trouve-t-on le code qu'il faut insérer?

  4. #4
    Membre habitué
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2019
    Messages : 151
    Points : 185
    Points
    185
    Par défaut
    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"]

    Nom : Balise code.jpg
Affichages : 119
Taille : 14,4 Ko

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2021
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    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

  6. #6
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,

    Je ne sais pas si prix_aub est individuel ou collectif, je l'ai considéré individuel, voici ce que j'aurais écrit :
    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
    Note : le type Currency est particulièrement adapté aux calculs monétaires.

    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

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Salut.

    Citation Envoyé par Patrice740 Voir le message
    [...]
    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

    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...
    ---------------

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

Discussions similaires

  1. problème VBA Excel rempalcer rechercheV
    Par sharox dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/11/2013, 09h03
  2. Problème vba excel
    Par nadeson dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 04/05/2012, 13h59
  3. [XL-2000] Problème VBA Excel : Doublon ou Dictionnaire
    Par arnomuch dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/02/2011, 13h40
  4. Problème VBA EXCEL - WORD - presse papier
    Par kiwi01 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/01/2010, 09h17

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