Bonjour le forum,

J’ai essayé de faire le plus par moi-même mais maintenant je suis bloqué.

J’ai du code VBA qui me permet de contrôler la valeur des cellules.

Si une cellule correspond à 7, j’écris en J3 « 3 », si il rencontre à nouveau un 7, j’ajoute « 3 » à ce total.

Même chose pour 8 (10-8=2) sauf que je met 2 et pour 9 je met 1 (10-9=1)

Voici le code commenté :
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
 
Sub balance()
'
' balance Macro
' Macro enregistrée le 22/01/2006 
'
Dim balance7 As Byte
Dim balance8 As Byte
Dim balance9 As Byte
 
'début: car à la fin de la procédure, il y'a un goto début qui dit de revenir faire la boucle
debut:
'fait tant que la couleur de la police de la cellule active = à bleue (5)
Do Until ActiveCell.Font.ColorIndex <> 5
 
'si la valeur de la cellule active = 7, alors
If ActiveCell.Value = "7" Then
ActiveCell.Interior.ColorIndex = 15
'je donne à la cellule nommée balance7 la valeur de la variable "balance7" + 3 (J3)
Application.Range("balance7").Offset(1, 0) = balance7 + 3
'la valeur de la variable "balance7" prend sa nouvelle valeur.
balance7 = Application.Range("balance7").Offset(1, 0).Value
End If
If ActiveCell.Value = "8" Then
ActiveCell.Interior.ColorIndex = 15
Application.Range("balance8").Offset(1, 0) = balance8 + 2
balance8 = Application.Range("balance8").Offset(1, 0).Value
End If
If ActiveCell.Value = "9" Then
ActiveCell.Interior.ColorIndex = 15
Application.Range("balance9").Offset(1, 0) = balance9 + 1
balance9 = Application.Range("balance9").Offset(1, 0).Value
End If
 
'j'avance d'une collone
ActiveCell.Offset(0, 1).Select
Loop
 
‘Je descends d’une ligne
ActiveCell.Offset(1, 0).Select
‘je vais une collone à gauche
ActiveCell.Offset(0, -1).Select
‘jusqu’à ce que la couleur de la cellule soit différente de bleue
Do Until ActiveCell.Font.ColorIndex <> 5
‘Je vais vers la gauche sur la même ligne
‘j’arrive sur le numéro de l’étudiant et j’avance d’un pour retourner à début
ActiveCell.Offset(0, -1).Select
Loop
 
‘je redone la valeur 0 aux variables
balance7 = 0
balance8 = 0
balance9 = 0
 
‘si la valeur active = à rien
If ActiveCell.Value = "" Then
‘j’arrête le programme
Exit Sub
‘autrement
Else
‘je vais à debut qui est une etiquette qui refait le programme (la boucle).
GoTo debut
End If
End Sub
Le problème est qu’il est sur la bonne ligne, check les bonnes cotes mais dès qu’il rencontre un 7, un 8 ou un 9 il additionne 1, 2 ou 3 en J3 au lieu de le mettre en J4

J’espère avoir été assez claire, si vous voulez, je peux envoyer la page via le net.

N’hésitez pas à me contacter si vous avez besoin de plus d’explications.

Merci d’avance pour votre aide.

.