Excel Fonction Définie par l'Utilisateur: changer la couleur des cellules
J'ai une fonction définie par l'utilisateur dans Excel. Elle est appelée comme une fonction de formule à partir de cellules de feuille de calcul et fonctionne très bien.
J'aimerais la fonction pour être en mesure de modifier la couleur des cellules en fonction de la valeur qu'elle retourne. Essentiellement, la modification de la couleur des cellules est un effet secondaire de la fonction.
J'ai essayé
Application.ThisCell.Interior.ColorIndex = 2
Mais il échoue.
double possible de à l'Aide d'un fichier UDF dans Excel pour mettre à jour la feuille de calcul
OriginalL'auteur Larry K | 2012-12-04
Vous devez vous connecter pour publier un commentaire.
Cela ne peut être fait. Fonctions définies par l'utilisateur ne peut pas modifier l'état de l'classeur/feuille de calcul etc.
La mise en forme Conditionnelle pour atteindre ce que vous voulez.
EDIT: C'est plus une suggestion, pas une vraie réponse.
Cela peut être fait dans UDF?. Si oui, comment? Merci pour les +1.
Merci, c'est utile.
il peut être fait avec un UDF comme par stackoverflow.com/questions/8520732/.... Alors que c'est complexe, je ne serais pas "absolu", comme Daniel, pour ce cas, il est excessif, il peut y avoir d'autres cas où il est d'usage
Pour référence, pour aider à prévenir un "profond trou de lapin", voici un peut plus propre version de ce que @brettdj posté le: stackoverflow.com/questions/23433096/...
OriginalL'auteur shahkalpesh
Voici une démonstration de la façon dont un VBA UDF pouvez modifier la coloration des feuilles de contenu plutôt que d'utiliser la mise en forme conditionnelle.
Tant que les deux feuilles de rangées et de colonnes dans le même ordre, alors ce sera de comparer les différences dans chaque cellule entre deux séparer les feuilles de calcul Excel.
Vous pouvez ajouter ce en autant de cellules que vous devez sur une troisième feuille de détecter les différences entre les deux mêmes cellules sur les deux feuilles avec des données sur:
=DifferenceTest(Sheet1!A1,Sheet2!A1)
Et de la fonction pour être stockés dans l'éditeur VBA comme suit:
OriginalL'auteur JonoMac
Non, vous ne pouvez pas modifier une cellule de la couleur à l'aide d'un Function(). Vous pouvez, cependant, modifier un Sub() routine.
Il suffit d'écrire une Sub() qui va lancer votre fonction sur les cellules que vous souhaitez exécuter, puis après chaque exécution, mettre un if pour voir si vous voulez à la couleur sur la base de la valeur qu'elle renvoie.
OriginalL'auteur aevanko
Vous pouvez créer un code vba qui s'exécute automatiquement après il y a un changement dans votre feuille.
Au lieu de hving le code dans un autre module, vous devez l'intégrer dans la feuille elle-même.
Clic droit sur l'onglet de la feuille, choisissez Afficher le Code et créer le code suivant:
OriginalL'auteur Diederik
Evaluate
? Vraiment?OriginalL'auteur Đinh Quốc Tuấn
J'ai essayé le
Evaluate
méthode, qui a travaillé, mais immédiatement écrasé (2007). L'aide mentionne la mise en cache de l'adresse, de sorte que mon approche - magasin de la cellule et de la couleur dans une collection, puis changez la couleur après le calcul.OriginalL'auteur adoxa