[VBA] problème choix de cellule dans feuille excel
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:
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 |
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.
.