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 (boucle FOR/NEXT)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2018
    Messages : 3
    Par défaut Problème VBA (boucle FOR/NEXT)
    Bonjour,

    J'ai besoin de votre aide... en effet j'ai du transformer un algorithme (Pièce Jointe) en langage VBA.

    Le but de cet algorithme sur VBA est de calculer le salaire total et le salaire moyen d'une entreprise de 20 salariés en fin d'année ( 12 mois).

    J'ai réussi à transformer mon algorithme en VBA mais je dois avoir un problème sur une ligne ....
    algo.pdfalgo.pdf
    algo.pdfessai.xlsm

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par buzzinge Voir le message
    J'ai réussi à transformer mon algorithme en VBA mais je dois avoir un problème sur une ligne ....
    Tu commences par lire les règles du forum, entre autre celle-ci : https://www.developpez.net/forums/d8...s-discussions/
    Ensuite, tu copies ton code dans un message sous forme de texte avec des balises CODE (l'icone #)
    http://club.developpez.com/regles/#LIII-E
    Et enfin, tu indiques quelle ligne se signale le problème et quel est le message d'erreur, ou bien, s'il n'y a pas de message d'erreur, qu'est-ce qui n'est pas conforme à ce que tu attendais.

    Cela dit, j'ai regarder ton algorithme en PDF. Avec quelques notions d'anglais niveau collège, je en vois pas comment il serait possible de ne pas trouver le code correspondant vu qu'il est quasiment écrit.

  3. #3
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2018
    Messages : 3
    Par défaut CODE vba
    Je vous remercie pour votre réponse,

    Voici mon code VBA que j'ai réalisé et qui est censé correspondre à l'algorithme que vous avez pu lire en PDF .... je n'ai pas forcément de message d'erreur mais ma VBA ne marche pas .. Je suis totalement débutante, j'ai essayé au mieux mais je vous avouerai que je suis en difficultés. Merci d'avoir pris le temps de me lire.


    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
     
    Sub Exercice_10()
     
    Dim Salairemensuel(1 To 20)
    Dim cumulsalarie As Single
    Dim Salairetotal As Single
    Dim MoyenneAnnée As Single
    Dim i As Long
    Dim m As Long
     
    Salairemensuel = 0
    cumulsalarié = 0
    Salairetotal = 0
    MoyenneAnnée = 0
    Somme = 0
     
    For i = 1 To 20
    For m = 1 To 12
     
    Salairemensuel = InputBox("Saisissez le salaire du mois :")
    cumulsalarie = cumulsalarie + Salairemensuel
    Next
     
    Next
    MsgBox "Le salaire total du salarié est de "" & i & ""& cumulsalarie & "
    Salairetotal = Salairetotal + cumulsalarie
    cumulsalarié = 0
    MoyenneAnnée = Salairetotal / 20
    MsgBox "le salaire total de tous les salariés est de " & Salairetotal & ""
    MsgBox "le salaire moyen de tous les salariés est de " & MoyenneAnnée & ""
     
     
    End Sub

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Compare l'ordre des lignes dans l’algorithme et dans ton code. Tu ne vois pas une différence qui saute aux yeux.
    Franchement, je suis sûr que même ma fille de 10 ans verrait la différence.

  5. #5
    Candidat au Club
    Femme Profil pro
    Lycéen
    Inscrit en
    Avril 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2018
    Messages : 3
    Par défaut vba
    Effectivement, j'avais déplacé le NEXT (que j'ai remis à sa place ci-dessous) car si je le laisse là ou il est placé dans l'algorithme j'ai un message d'erreur qui souligne le titre en jaune dès que j'appuie sur exécuter ...

    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
    Sub Exercice_10()
     
    Dim Salairemensuel(1 To 20)
    Dim cumulsalarie As Single
    Dim Salairetotal As Single
    Dim MoyenneAnnée As Single
    Dim i As Long
    Dim m As Long
     
    Salairemensuel = 0
    cumulsalarié = 0
    Salairetotal = 0
    MoyenneAnnée = 0
    Somme = 0
     
    For i = 1 To 20
    For m = 1 To 12
     
    Salairemensuel = InputBox("Saisissez le salaire du mois :")
    cumulsalarie = cumulsalarie + Salairemensuel
    Next
    MsgBox "Le salaire total du salarié est de "" & i & ""& cumulsalarie & "
    Salairetotal = Salairetotal + cumulsalarie
    cumulsalarié = 0
    Next
    MoyenneAnnée = Salairetotal / 20
    MsgBox "le salaire total de tous les salariés est de " & Salairetotal & ""
    MsgBox "le salaire moyen de tous les salariés est de " & MoyenneAnnée & ""
     
     
    End Sub

  6. #6
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonsoir,
    Une première bizarrerie: La variable est déclaré "cumulsalarie", mais lors de la remise à zéro, elle est écrite "cumulsalarié = 0". Bizarre, non ?
    Une deuxième, le MsgBox ci dessous, me semble mal écrit?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "Le salaire total du salarié est de "" & i & ""& cumulsalarie & "
    La, les variables donneront leurs résultats.Mais je ne vois pas l'intérêt du résultat donné. Enfin moi ce que j'en dit ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox "Le salaire total du salarié est de " & i & cumulsalarie
    Cordialement

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Comment peut-on raisonnablement écrire ceci ? -->>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim Salairemensuel(1 To 20)
    '............
     
    Salairemensuel = 0
    '.........................
    Salairemensuel = InputBox("Saisissez le salaire du mois :")
    Un tableau dynamique n'est pas une seule variable, d'une seule valeur,, mais une matrice de valeurs.

Discussions similaires

  1. problème de boucles for next imbriquées en vba
    Par Moa83 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/04/2017, 15h54
  2. [XL-2003] VBA boucle for - problème incrémentation
    Par HankMoody dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/07/2012, 17h31
  3. [XL-2007] Problème dans une boucle For..Next
    Par robby98800 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/06/2012, 07h48
  4. VBA : boucle for + boucle do problème
    Par antoineDG dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/02/2012, 11h19
  5. [VB6] Problème contrôle Timer et boucle For-Next ...
    Par Stéphane BEHMENBURG dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/12/2005, 17h36

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