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.
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.
L'UserForm s'initialise et affiche les cases ou on pourrait remplir des notes suivant le métier
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
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
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.
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
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 !
Partager