Petit probleme d'update de formule

Bonjour à tous, je suis nouveau sur ce forum et un sans doute plutot néophyte sur l'utilisation de fonction avancées d'Excel, néanmoins je me suis lancé dans une entreprise pour laquelle j'ai un petit soucis de finition

J'ai un tableur dont un certain nombre de cases doivent etre renseignées en leur assignant une couleur.

J'avais besoin de créer la condition suivante :

- je me place sur une cellule en bas d'une colonne d'environ dix lignes environs : si une des cases ci-dessus est bleue alors cette cellule doit apparaitre en bleue également.

Pour cela j'ai créer via un module la fonction permettant de rapatrier le code couleur (via des recherches sur ce meme sujet comme vous pouvez l'imaginer):

Function getColor(laRange As Range) As Double

getColor = laRange.Interior.Color

End Function

Puis dans ma cellule j'ai créé une fonction me permettant de faire apparaitre un "T" si une des cellules du haut apparait avec le code couleur bleue (ici 12611584).

Cela donne : si l'une des cellules ci dessous a un code couleur égal à 12611584, faire apparaître la lettre T , sinon rien, soit :

=SI(OU(getColor(GY7)=12611584;getColor(GY8)=12611584;getColor(GY9)=12611584;getColor(GY10)=12611584;getColor(GY6)=12611584;getColor(GY13)=12611584;getColor(GY12)=12611584;getColor(GY17)=12611584;getColor(GY16)=12611584;getColor(GY21)=12611584;getColor(GY22)=12611584;getColor(GY20)=12611584;getColor(GY26)=12611584;getColor(GY27)=12611584;getColor(GY25)=12611584);"T";"")

Pour finir j'ai créé une mise en forme conditionnelle, pour colorer en bleu ma cellule si elle contient la lettre T.

ET bien aussi bizarre que cela puisse paraître , ça marche , sauf que pas moyen de faire en sorte que ce calcul se fasse en temps réel. je précise après recherches multiples que :

  • le mode de calcul automatique est bien activé dans les options mais aussi dans la barre "formules"
  • mes cellules ne sont pas en format texte.

Le seul moyen pour que le calcul se fasse c'est :

  • faire control+alt+shift+F9
  • ou alors rentrer dans la cellule avec la fonction SI, faire enter, et là il recalcule.

A votre bon coeur !

Bonsoir et bienvenue,

C'est pas mal en partant de 0... mais pour plus d'efficacité je conseille de limiter tes recherches à l'aide VBA, aux cours de VBA que tu trouveras sur les sites spécialisés ou aux tutos des mêmes sites, pour plus d'efficacité...

Tu aurais notamment pu trouver la commande à utiliser pour qu'une fonction personnalisée se recalcule, qu'une couleur est une donnée de type Long, donc inutile à typer en Double et tu aurais pu ne faire qu'une fonction englobant les deux, ce évite les formules à rallonges imbuvables (dont j'ai toujours du mal à comprendre qu'on puisse les écrire ! )

Par exemple :

Function TSICOULEUR(RefClr As Range, PlgClr As Range)
    Dim Clr As Long, c As Range
    Application.Volatile
    Clr = RefClr.Interior.Color
    For Each c In PlgClr
        If c.Interior.Color = Clr Then
            TSICOULEUR = "T"
            Exit Function
        End If
    Next c
    TSICOULEUR = ""
End Function

Dans laquelle tu mets comme argument ta plage de référence pour la couleur (ça évite de se trimballer avec un code couleur, une variable ou une constante c'est toujours mieux), et ta plage à tester (attention ! si ta plage est multizone, tu peux la mettre dans une formule en séparant chaque zone par un ; et l'ensemble entre parenthèses...)

Mais tu aurais même pu faire mieux avec une fonction utilisable en MFC (renvoyant VRAI ou FAUX), évitant ainsi la formule dans la cellule et le "T"... J'ai préféré ne pas faire celle-la car tes énumérations de cellules étaient un peu trop en désordre et il vaut mieux être précis.

Cordialement.

Je te remercie grandement de ton aide.

Je dois avouer que pour moi à ce stade c'est bien sur du chinois donc me lancer dans le VBA me semble être un vrai défi, mais puisque j'aime les défis, je vais suivre ton conseil.

Cela semble bien marcher , cela dit j'ai toujours besoin de faire F9 pour que le calcul veuille bien se faire, étrangement , je vais trifouiller un peu pour voir ce qui se passe

Vérifie que tu es bien en calcul auto, et le recalcul ne se fait que lorsqu'un changement intervient dans la feuille.

Cordialement.

NB- Si tu modifies une couleur, cela ne provoque pas de recalcul, ce n'est pas un changement de valeurs intéressées par le calcul.

OK je comprends mieux, on apprends tous les jours parait-il

merci encore!

Rechercher des sujets similaires à "petit probleme update formule"