Hello,
Je suis en train de galérer sur un gros tableau qui rame avec l'usage d'une macro. Il s'agit d'une fonction qui change le fond de cellule automatiquement en fonction d'un code couleur pris dans une autre cellule.
Voici la macro que j'ai trouvé sur le net, et que j'ai adapté ici :
Function COLCELL(r)
Dim clr As Long, src As Range, sht As String, f, v
If IsEmpty(r) Then
clr = vbWhite
Else
clr = r
End If
Set src = Application.ThisCell
sht = src.Parent.Name
f = "Changeit(""" & sht & """,""" & _
src.Address(False, False) & """," & clr & ")"
src.Parent.Evaluate f
COLCELL = ""
End Function
Sub ChangeIt(sht, c, clr As Long)
ThisWorkbook.Sheets(sht).Range(c).Interior.Color = clr
End Sub
Au départ, j'ai utilisé la macro pour que la fonction prenne les valeurs RGB sur 3 cellules, puis pensant que j'allais gagner en performance, je l'ai modifié pour que cela lise le code couleur en décimal au lieu de RGB. C'est juste un bricolage effectué par un novice.
... Mais, ça rame horriblement toujours (environ 365*9 cellules concernées dans le tableau) !!
Est-ce possible d'alléger cette macro ?
Ou, alors, si le ramage vient du changement de couleur automatisé. Dans ce cas, est-ce possible, de créer un bouton qui active le changement de couleur de la fonction ?
Mais là, je n'y connais rien au VBA.
Est-ce quelqu'un pourrait voler à mon secours?