Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

colorer une cellule à partir d'une fonction

  • Initiateur de la discussion tniu
  • Date de début
T

tniu

Guest
Bonjour à tous

J'ai besoin de colorer une cellule à partir d'une fonction VBA.

Je m'explique :
Il s'agit d'un tableau de calcul. Selon le cas, l'utilsateur n'a à remplir que certaines colonnes. Dans certains cas, une colonne doit être remplie mais pas dans d'autre (par exemple, si le temps est à la pluie, il me faut la mesure des précipitations).

Je veux pouvoir colorer les colonnes necessaires et non remplie dans un cas spécifique. les contraintes sont trops complexes pour un formating automatique, aussi je voudrais pouvoir faire le coloriage depuis ma fonction.

apparement le colorindex est inopérant dans le cadre d'une fonction. Malgré mes recherches, je n'ai pas trouvé de solution

Merci de votre aide !

Tniu
 

JCA06

XLDnaute Occasionnel
Bonjour tniu,

Je ne sais pas si tu peux inclure le code dans ta fonction, mais tu peux peut-être, dans ta fonction, appeler une procédure.
Sinon, tu peux gérer cela indépendamment de ta fonction.

A plus.
 

Abel

XLDnaute Accro
Bonjour tniu, JCA06, mutzik,

En attendant de plus amples informations test la pièce jointe et dis nous si cela te convient.

En espérant que cela te dépanne.

Abel. [file name=Exemple_tniu.zip size=8211]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Exemple_tniu.zip[/file]
 

Pièces jointes

  • Exemple_tniu.zip
    8 KB · Affichages: 295
T

Tniu

Guest
Bonjour et merci à tous,

pour résumer mon objectif, je dois calculer un résultat numérique en fonction d'un grand nombre de paramètres. Chaque ligne correspond à un cas à calculer. J'ai donc une colonne résultat du genre =calculeResult()

La fonction calculeResult vas chercher sur la même ligne les paramètres(A,B, C...). La logique est du genre :
si A>3 et B renseigné et positif, alors résultat= C/B
si A>3 et B non renseigné alors resultat=D
si A=2 et B non renseigné => ERREUR

je veux colorier en rouge la case 'cause' de l'erreur (ici B).
Je ne 'sais' donc s'il faut colorier B qu'au moment du calcul.

Les parametres étant assez nombreux, un formatage conditionnel est très compliqué. De plus, la fonction est en cours 'd'élaboration'. Je voudrais donc avoir la coloration dans la fonction pour garder une cohérence en cas d'évolution.

Si je change un seul parametre d'une seule ligne, je ne veux pas tout recalculer. Cela me semble interdire de faire réaliser le calcul par une macro de la feuille, non ?

Code:
Sub colorsub()
    Range('B11').Interior.ColorIndex = 3
End Sub
permet de colorer une case. Par contre le même code dans ma fonction ne fait rien !

Code:
 Call colorsub
ne donne pas non plus de résultat

je me sens perdu !
toute suggestion sera la bienvenue !

Merci de votre aide !


Tniu, reconnaissant
 
T

Tniu

Guest
Pardon !

lire
<<
je veux colorier en rouge la case 'cause' de l'erreur (ici B
)
>>

le Smiley n'était pas voulu !

(je ne vois pas les smiley dans l'aperçu...)

Tniu
 

Abel

XLDnaute Accro
Bonjour Tniu, le fil,

Si c'est seulement la cellule Bx qui peut être source d'erreur et uniquement lorsque vide et Ax=2, alors utilise la mise en forme conditionnelle.

Menu 'Format/Mise en forme conditionnelle ...'.
Dans la première fenêtre (à gauche) choisi 'La formule est' et dans la fenêtre de droite, inscrit '=SI(ET(A2=2);B2='')'. Les données étant sur la ligne 2. Puis clique le bouton 'Format ..' et va chercher le motif rouge.
Enfin, valide.

Cette mise en forme conditionnelle peut être recopiée en recopiant le format.


Abel.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…