Couleur de text dans cellule avec fonction

Y compris Power BI, Power Query et toute autre question en lien avec Excel
G
Gouby
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 24 mars 2020
Version d'Excel : 2003 FR

Message par Gouby » 24 mars 2020, 19:24

Bonjour,
Petit utilisateur Excel VBA, j'ai créé une fonction "public function" dans une cellule qui fonctionne bien.
Le résultat s'affiche dans la cellule sous forme de texte en noir.
Peut-on dans cette même fonction en VBA changer la couleur de l'écriture noire?
Si vous avez une solution cela m'évitera de changer manuellement la couleur pour chaque cellule qui a cette fonction.
En vous remerçiant.
Avatar du membre
Pedro22
Passionné d'Excel
Passionné d'Excel
Messages : 3'934
Appréciations reçues : 401
Inscrit le : 26 janvier 2017
Version d'Excel : 2010 FR
Version de Sheets : FR
Téléchargements : Mes applications

Message par Pedro22 » 25 mars 2020, 09:49

Bonjour,

Une fonction n'a qu'un élément de sortie (dans la majorité des cas : une valeur, sauf pour des fonctions telles que DECALER ou INDIRECT qui donnent une plage de cellules). Il n'est donc pas possible de modifier la couleur à ce niveau.
Si l'appel et/ou écriture de la fonction se fait via une macro, on peut modifier la couleur de cellule à ce moment là. Si le résultat de cette fonction est suffisamment spécifique pour permettre de l'identifier, on peut ajouter la couleur par le biais d'une MFC.

Merci de fournir un classeur exemple pour une réponse plus précise.
Modifié en dernier par Pedro22 le 26 mars 2020, 08:55, modifié 2 fois.
Merci de prendre 30 sec pour lire la charte du forum.
Quelques conseils : ici
G
Gouby
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 24 mars 2020
Version d'Excel : 2003 FR

Message par Gouby » 25 mars 2020, 21:40

Merci Pedro
J'ai tenté de poser la question pour function, si il y avait un moyen détourné de contourner le verrouillage de function. Ta réponse confirme que non.
J'ai pensé à MFC mais les cellules où la fonction est sont disposées aléatoirement dans ma feuille.
Voici l'écriture de sortie de la fonction ,Age = Format(aage) & "a" & Format(mage) & "m".
Il faudrait :
- pouvoir identifier cette écriture sur tout le tableau pour pouvoir faire Font.colorindex=7.
- faire la conversion dès que la fonction est mise dans une cellule.
Je ne sais pas comment faire!
Je prends toute idée, Merci beaucoup
PS je suis sous 2003 mais si le pb peut être solutionné avec 2007, je change
cela fait 40a que je n'ai pas fait de programmation!
Avatar du membre
Pedro22
Passionné d'Excel
Passionné d'Excel
Messages : 3'934
Appréciations reçues : 401
Inscrit le : 26 janvier 2017
Version d'Excel : 2010 FR
Version de Sheets : FR
Téléchargements : Mes applications

Message par Pedro22 » 26 mars 2020, 08:59

Bonjour,

Peux-tu détailler le code et la finalité de ta fonction ?
Si c'est pour exprimer une durée au format "année(s) + mois", il n'y a pas besoin de fonction VBA. C'est gérable avec l'existant Excel.
Pour ce qui est de la mise en forme, un classeur avec quelques exemples fictifs / anonymisés serait le bienvenu !
Merci de prendre 30 sec pour lire la charte du forum.
Quelques conseils : ici
G
Gouby
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 24 mars 2020
Version d'Excel : 2003 FR

Message par Gouby » 26 mars 2020, 09:22

L'affichage dans le tableau XannéesXmois, ce sont des dates avant 1900.
tu veux le code de la fonction ou le tableau test?
G
Gouby
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 24 mars 2020
Version d'Excel : 2003 FR

Message par Gouby » 26 mars 2020, 09:39

En pièce jointe le fichier de test
Test age3.xls
(29 Kio) Téléchargé 1 fois
remarques il y a un pb quand le mois est 12
les dates de naissance et mort toujours dans la même colonne
la fonction toujours sur la ligne de mort
Avatar du membre
Pedro22
Passionné d'Excel
Passionné d'Excel
Messages : 3'934
Appréciations reçues : 401
Inscrit le : 26 janvier 2017
Version d'Excel : 2010 FR
Version de Sheets : FR
Téléchargements : Mes applications

Message par Pedro22 » 26 mars 2020, 10:01

J'ai travaillé sur une problématique très proche il y a plusieurs semaines :
viewtopic.php?p=836912#p836912
Merci de prendre 30 sec pour lire la charte du forum.
Quelques conseils : ici
G
Gouby
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 24 mars 2020
Version d'Excel : 2003 FR

Message par Gouby » 26 mars 2020, 10:35

oui j'avais pensé à cette idée d'ajouter plusieurs siècles, mais cela ne me plait pas, pas très élégant.
j'ai pensé à mettre une condition dans MFC un test savoir si la cellule est formule avec =lire.cellule(48;x) mais je ne sait pas si cette fonction marche pour excel 2003?
que pense tu de cette idée?
Avatar du membre
Pedro22
Passionné d'Excel
Passionné d'Excel
Messages : 3'934
Appréciations reçues : 401
Inscrit le : 26 janvier 2017
Version d'Excel : 2010 FR
Version de Sheets : FR
Téléchargements : Mes applications

Message par Pedro22 » 26 mars 2020, 10:44

Gouby a écrit :
26 mars 2020, 10:35
oui j'avais pensé à cette idée d'ajouter plusieurs siècles, mais cela ne me plait pas, pas très élégant.
j'ai pensé à mettre une condition dans MFC un test savoir si la cellule est formule avec =lire.cellule(48;x) mais je ne sait pas si cette fonction marche pour excel 2003?
que pense tu de cette idée?
Je ne connais pas cette formule, donc difficile de t'aider.
Concernant l'ajout de siècle, il se fait au moment du calcul uniquement, donc n’apparaît nul part dans les cellules. Cet ajout ne change pas non plus l'écart entre les 2 dates (donc le calcul de l'âge).
Merci de prendre 30 sec pour lire la charte du forum.
Quelques conseils : ici
G
Gouby
Jeune membre
Jeune membre
Messages : 11
Inscrit le : 24 mars 2020
Version d'Excel : 2003 FR

Message par Gouby » 26 mars 2020, 10:48

j'ai une autre question qui sort du sujet
connais tu une version ou un soft qui permet de colorer partiellement une cellule Excel?
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message