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 :

Calculs de plusieurs moyennes


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Amateur
    Inscrit en
    Février 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Amateur

    Informations forums :
    Inscription : Février 2014
    Messages : 24
    Par défaut Calculs de plusieurs moyennes
    Bonjour,

    je viens vers vous car j'ai un soucis de réflexion sur un truc.

    Déjà une petite description du fichier que je fais actuellement:
    Dans mon entreprise, on récompense nos apprentis qui font de bonnes moyennes par des primes. Chaque apprenti, en fonction de l'année et de la moyenne reçoit un montant fixé. (entre 4,5 et 5 c'est 200.- etc...)
    J'ai une base de donnée avec les noms prénoms, les différentes notes selon les métiers et une case Montant Prime.

    Nom : Capture.PNG
Affichages : 319
Taille : 50,6 Ko

    J'ai un UserForm qui s'ouvre et selon le métier on peut compléter les notes et il insère automatiquement dans les cases voulues les notes inscrites.

    Nom : Capture.PNG
Affichages : 218
Taille : 32,0 Ko


    L'UserForm s'initialise et affiche les cases ou on pourrait remplir des notes suivant le métier

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    Private Sub UserForm_Initialize()
    ' Initialisation de l'Userform et remplissage des informations nécessaires, telle que notes, infos générales.
     
    nom.Text = Cells(ligne, 2)
    prenom.Text = Cells(ligne, 3)
    bsa.Text = Cells(ligne, 1)
    annee.Text = Cells(ligne, 4)
    profession.Text = Cells(ligne, 6)
     
    'Masquage des différentes cases de notes
    NTF.Visible = False
    anglais.Visible = False
    dessin.Visible = False
    electronique.Visible = False
    automatisation.Visible = False
    PRI.Visible = False
    social.Visible = False
    prof.Visible = False
    usinage.Visible = False
    machines.Visible = False
    commande.Visible = False
    electrotechnique.Visible = False
    logicielles.Visible = False
    fab3.Visible = False
    mic2.Visible = False
    MPX.Visible = False
    enseignement.Visible = False
    globale.Visible = False
    STA.Visible = False
    UF.Visible = False
    technique.Visible = False
    elo.Visible = False
     
    'Supprime les valeurs présentes
    NTF.Text = ""
    anglais.Text = ""
    dessin.Text = ""
    electronique.Text = ""
    automatisation.Text = ""
    PRI.Text = ""
    social.Text = ""
    prof.Text = ""
    usinage.Text = ""
    machines.Text = ""
    commande.Text = ""
    electrotechnique.Text = ""
    logicielles.Text = ""
    fab3.Text = ""
    mic2.Text = ""
    MPX.Text = ""
    enseignement.Text = ""
    globale.Text = ""
    STA.Text = ""
    UF.Text = ""
    technique.Text = ""
    elo.Text = ""
     
     
    'Activation des cases pour notes en fonction du métier
    If profession.Text = "Automaticien-ne" Then
     
    NTF.Visible = True
    anglais.Visible = True
    dessin.Visible = True
    electronique.Visible = True
    automatisation.Visible = True
    PRI.Visible = True
    social.Visible = True
    prof.Visible = True
     
    ElseIf profession.Text = "Polymécanicien-ne" Or profession.Text = "Polymécanicien en 2 ans" Then
     
    NTF.Visible = True
    anglais.Visible = True
    usinage.Visible = True
    machines.Visible = True
    commande.Visible = True
    PRI.Visible = True
    social.Visible = True
    prof.Visible = True
     
    ElseIf profession.Text = "DCI" Then
     
    NTF.Visible = True
    anglais.Visible = True
    usinage.Visible = True
    machines.Visible = True
    commande.Visible = True
    PRI.Visible = True
    social.Visible = True
    prof.Visible = True
     
    ElseIf profession.Text = "Electronicien-ne" Then
     
    NTF.Visible = True
    anglais.Visible = True
    electrotechnique.Visible = True
    elo.Visible = True
    logicielles.Visible = True
    PRI.Visible = True
    social.Visible = True
    prof.Visible = True
    fab3.Visible = True
    mic2.Visible = True
    MPX.Visible = True
     
    ElseIf profession.Text = "CAI" Then
     
    NTF.Visible = True
    usinage.Visible = True
    machines.Visible = True
    technique.Visible = True
    social.Visible = True
    prof.Visible = True
     
    ElseIf profession.Text = "Logisticien-ne" Then
     
    enseignement.Visible = True
    social.Visible = True
    prof.Visible = True
     
    ElseIf profession.Text = "Employé-e de commerce" Then
     
    globale.Visible = True
    STA.Visible = True
    UF.Visible = True
     
    Else
     
     
    End If
     
     
     
     
     
    End Sub
    Et Il enregistre les infos que l'on à inscrites dans les cases.

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    Private Sub sauvegarde_Click()
    'Quand on appuie sur ce bouton, les notes s'inscrivent automatiquement en fonction de la ligne et du métier dans le tableau des notes.
    'A chaque métier, ses cases dans le tableau, donc on inscrit les notes en fonction des métiers.
    If profession.Text = "Automaticien-ne" Then
     
    Cells(ligne, 8).Value = NTF.Text
    Cells(ligne, 9).Value = anglais.Text
    Cells(ligne, 10).Value = dessin.Text
    Cells(ligne, 11).Value = electronique.Text
    Cells(ligne, 12).Value = automatisation.Text
    Cells(ligne, 13).Value = PRI.Text
    Cells(ligne, 44).Value = social.Text
    Cells(ligne, 43).Value = prof.Text
     
     
    ElseIf profession.Text = "Polymécanicien-ne" Or profession.Text = "Polymécanicien en 2 ans" Then
     
    Cells(ligne, 14).Value = NTF.Text
    Cells(ligne, 15).Value = anglais.Text
    Cells(ligne, 16).Value = usinage.Text
    Cells(ligne, 17).Value = machines.Text
    Cells(ligne, 18).Value = commande.Text
    Cells(ligne, 19).Value = PRI.Text
    Cells(ligne, 44).Value = social.Text
    Cells(ligne, 43).Value = prof.Text
     
    ElseIf profession.Text = "DCI" Then
     
    Cells(ligne, 30).Value = NTF.Text
    Cells(ligne, 31).Value = anglais.Text
    Cells(ligne, 32).Value = usinage.Text
    Cells(ligne, 33).Value = machines.Text
    Cells(ligne, 34).Value = commande.Text
    Cells(ligne, 35).Value = PRI.Text
    Cells(ligne, 44).Value = social.Text
    Cells(ligne, 43).Value = prof.Text
     
    ElseIf profession.Text = "Electronicien-ne" Then
     
    Cells(ligne, 20).Value = NTF.Text
    Cells(ligne, 21).Value = anglais.Text
    Cells(ligne, 23).Value = electrotechnique.Text
    Cells(ligne, 22).Value = elo.Text
    Cells(ligne, 24).Value = logicielles.Text
    Cells(ligne, 25).Value = PRI.Text
    Cells(ligne, 44).Value = social.Text
    Cells(ligne, 43).Value = prof.Text
    Cells(ligne, 26).Value = fab3.Text
    Cells(ligne, 27).Value = mic2.Text
    Cells(ligne, 28).Value = MPX.Text
     
    ElseIf profession.Text = "CAI" Then
     
    Cells(ligne, 39).Value = NTF.Text
    Cells(ligne, 40).Value = usinage.Text
    Cells(ligne, 41).Value = machines.Text
    Cells(ligne, 42).Value = technique.Text
    Cells(ligne, 44).Value = social.Text
    Cells(ligne, 43).Value = prof.Text
     
    ElseIf profession.Text = "Logisticien-ne" Then
     
    Cells(ligne, 29).Value = enseignement.Text
    Cells(ligne, 44).Value = social.Text
    Cells(ligne, 43).Value = prof.Text
     
    ElseIf profession.Text = "Employé-e de commerce" Then
     
    Cells(ligne, 36).Value = globale.Text
    Cells(ligne, 37).Value = STA.Text
    Cells(ligne, 38).Value = UF.Text
     
    Else
     
    'Erreur en cas de vide sur la case métier. Il faudra donc aller voir dans la BD si il n'y pas une ligne vide ou une case non remplie
    MsgBox "Ooops, ce métier n'est pas pris en compte pour obtenir une prime."
     
    End If
    Cells(ligne, 5) = Semestre.Text
    ligne = ligne + 1
    UserForm_Initialize
     
    End Sub
    Mon problème réside maintenant dans le fait que, si un automaticien à les cases telles et telles remplies, il faut que je fasse la moyenne de ces notes et que selon la note, je calcule la prime.

    J'ai la fonction (Application.Average) mais je sais pas ou la placer pour qu'elle aille le mieux et que ça soit pas trop lourd... Impossible de trouver ou les poser.....

    Merci à celui, celle ou ceux qui m'aideront et bonne journée à vous !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Sans macro. Pourquoi n'insérez-vous pas une colonne Moyenne après la colonne Prime ?

    Il vous suffit ensuite de mettre en place votre formule pour calculer la moyenne, sur les items de votre choix. Quant à la prime, une simple formule dépendant de la moyenne devrait suffire.

    Cela permettrait également à tout un chacun de vérifier le calcul des moyennes.

    Cordialement.

Discussions similaires

  1. Calcul de plusieurs moyenne sans prendre en compte les zéro
    Par antoine2933 dans le forum SAS Base
    Réponses: 13
    Dernier message: 18/05/2011, 15h46
  2. Calculer plusieurs moyennes d'une seule file
    Par Nico65 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 07/05/2010, 10h25
  3. Calculer plusieurs moyennes
    Par _cheers dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/08/2009, 17h22
  4. Calcul sur plusieurs champs similaires
    Par Zebulonn dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/05/2005, 14h24
  5. Problème dans le calcul des normales moyennes,
    Par MaxPayne dans le forum OpenGL
    Réponses: 1
    Dernier message: 12/04/2005, 17h50

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