Fonction : Colorer une cellule avec une valeur couleur décimale ?

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?

Bonjour,

Joins un petit classeur pour une aide adaptée du forum.

Cdlt.

12test-for-test.zip (463.06 Ko)

I'idée est que les cases colorées soient repris depuis les tableaux, et reportés dans les plannings de cours (onglet "1"). Et au final, y aura au moins 15 à l'identique comme celle ci.

Si avec un seul onglet, ca rame déjà, qu'est ce qu'il adviendra avec plusieurs onglets.

Re,

Tu aurais pu préciser que tu utilisais le Pack de fonctions XLP (macro complémentaire).

Cdlt.

Pas jugé utile de le préciser à vrai dire.

J'ai installé le pack surtout pour utiliser la fonction NO_COULEUR()

Bonjour,

Et bien, je fais partie de ceux ou celles qui n'ont pas installé ce complément.

Bonne continuation.

Cdlt.

J'ai retiré le complément tout en gardant deux fonctions qui m'intéressent.

Voici le fichier sans le pack, ni référence avec celui-ci.

11test-for-test-2.zip (470.45 Ko)

J'ai omis également de dire que j'utilise une macro qui interdit le couper/coller sur certains onglets. Ce tableau sera utilisé par au moins par 15 personnes qui auront tous cette propension à dézinguer le document.

Je laisse tomber... cette fonction rame trop. Elle est utile quand il s'agit d'une ou deux cases.

Si quelqu'un connait une fonction pour changer de couleur de cellule en fonction d'un code couleur décimal, je suis preneur.

En attendant, je vais me contenter d'utiliser les MFC.

bonjour,

Il faut adopter comme règle qu'Excel est fait pour des calculs pas pour de la décoration.

Les couleurs pénalisent fortement son fonctionnement.

Se limiter à l'indispensable.

A+

Bonjour,

Ta procédure pour éviter le couper/coller est perfectible.

Alt L X est opérant dans ton fichier.

Cdlt.

16test-for-test-2.zip (524.79 Ko)

Hello,

Je l'ai ôté provisoirement dans l'onglet "Salles", je devais encore retoucher le tableau.

Je reviens encore avec cette question de noob par rapport à la macro dans mon premier poste :

Est-il possible de faire en sorte que cette fonction, soit inactive lors des calculs ou saisie, c'est à dire dynamique, mais s'active par un bouton dans la feuille concernée (mise à jour de la couleur de toutes les cases de la feuille contenant cette fonction en une seule fois) ?

Je pense que cette solution peut fonctionner sans faire ramer continuellement le classeur à chaque saisie.

Vraiment, je ne m'y connais pas en vba. Help!

Rechercher des sujets similaires à "fonction colorer valeur couleur decimale"