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é :
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
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 dune 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 jarrive sur le numéro de létudiant et javance dun 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 jarrê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
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.
.
Partager