Bonsoir,

je suis sous Excel 2010. J'ai un tableau à 6 colonnes contenant un 4000 lignes de nombres (principalement décimaux) compris entre 0 et 200.

Le but du script est de colorer chaque cellule en fonction du nombre qu'elle contient en calculant la couleur que la cellule va prendre.

La couleur varie du rouge (255,0,0) au vert (0,255,0) en passant par le jaune. Le problème est que dès la 2ème ligne du fichier, la macro plante et ne peut pas colorer la cellule (erreur : "La méthode Color de l'objet Interior a échoué").

J'avoue ne pas comprendre pourquoi car les variables couleurG et couleurR sont bien des Integer compris entre 0 et 255 !

Le code :
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
 
Sub degrade()
 
Dim j As Integer
j = 1
 
Dim couleurR As Integer, couleurG As Integer
 
 
While Range("F" & j).Value <> ""
 
        Dim deltaexp As Integer
        deltaexp = 200
 
        Dim exp As Single
        exp = Range("F" & j).Value
 
        Dim ration As Double
        ration = exp / deltaexp
 
    If (ration <= 1/2) Then
 
        couleurR = 255
        couleurG = CInt(ration * 255 / 0.5)
    Else
        couleurR = CInt(510 * (0.5 - ration) + 255)
        couleurG = 255
 
    End If
 
    Range("F" & j).Interior.Color = RGB(couleurR, couleurG, 0)
 
    i = i + 1
 
Wend
End Sub
Voilà, je remercie d'avance celui qui saura me dire où je me suis planté