Fonction VBA pour tester si la cellule est conditionnellement formaté dans Excel
J'ai écrit la fonction ci-dessous pour tester si une cellule est mise en forme conditionnelle activé basée sur la cellule de remplissage.
Function cfTest(inputCell)
If inputCell.DisplayFormat.Interior.Color <> 16777215 Then
cfTest = True
Else
cfTest = False
End If
End Function
Il ne fonctionne pas cependant. Dire que cette méthode n'.
Sub myCFtest()
Dim R As Integer
R = 2
Do
If Range("I" & R).DisplayFormat.Interior.Color <> 16777215 Then
Range("K" & R).Value = True
Else
Range("K" & R).Value = False
End If
R = R + 1
Loop Until R = 20
End Sub
Quelqu'un peut-il m'expliquer pourquoi la fonction n'a pas de travail?
Acclamations.
MODIFIER: mise à Jour de la fonction, mais pas de travail pour la mise en forme conditionnelle
Function cfTest(inputCell)
If inputCell.Interior.ColorIndex <> -4142 Then
cfTest = True
Else
cfTest = False
End If
End Function
faire appel à cette fonction à partir de la cellule comme ceci:
C'est exactement ce que j'essayais de faire appel de la feuille de calcul. Merci pour le lien. Malheureusement, quand j'enlève la DisplayFormat il fonctionne, mais pas sur les cellules mises en forme conditionnelle. Des conseils à donner? Allons éditer le post de la mise à jour mais toujours pas de travail de la fonction....
Cochez cette http://www.cpearson.com/excel/CFColors.htm
=cfTest(A1)
? Si oui, DisplayFormat
ne fonctionne pas dans UDF fonction lors de l'appel de la feuille de calcul. Voir Remarques dans ce lien pour plus de détails: msdn.microsoft.com/en-us/library/office/...C'est exactement ce que j'essayais de faire appel de la feuille de calcul. Merci pour le lien. Malheureusement, quand j'enlève la DisplayFormat il fonctionne, mais pas sur les cellules mises en forme conditionnelle. Des conseils à donner? Allons éditer le post de la mise à jour mais toujours pas de travail de la fonction....
Cochez cette http://www.cpearson.com/excel/CFColors.htm
OriginalL'auteur Chris | 2014-03-12
Vous devez vous connecter pour publier un commentaire.
Ici est un travail de démonstration si le résultat souhaité. La colonne E regarde la colonne D et affiche la valeur VRAI si c'est conditionnellement formaté par la cellule de la couleur de remplissage. soit cliquer sur le nom de "Bob", et la mise en forme conditionnelle met en évidence la cellule via le code ci-dessous
Cliquer sur un autre nom, et le même résultat se produit.
Cependant, lorsque je clique sur éteindre les noms sur une autre cellule, j'nom de famille sélectionnée reste en surbrillance, donnant l'impression d'un bouton toujours déprimé.
Le code VBA derrière est comme suit.
Cela se trouve dans la Feuil1 code:
Et c'est la méthode elle-même:
L'application, j'ai fini par construire hors cette exemple a beaucoup trop, mais pour en revenir à la question posée, la cfTest() la méthode m'a permis de tester si une cellule a été mis en forme à la cellule de remplissage.
OriginalL'auteur Chris
Voici deux fonctions qui implémentent les conditions mathématiques. C'est un peu moins compliqué que la Puce Pearson version, et aussi moins complet, mais je pense que cela devrait couvrir la plupart des cas, et cela ne devrait pas être trop difficile à étendre.
Cela fonctionne pour certains opérateurs courants, mais il y a deux autres opérateurs (xlBetween et xlNotBetween) et il y a d'autres types de problèmes qui auraient pu être pris en tant que bien, et la logique de certains de ceux qui seraient un peu plus compliqué que cela. Certains d'entre eux, cependant (comme databars), intrinsèquement transmettre qu'il y a une condition, donc pas de traitement serait nécessaire.
Voici un lien vers la documentation complète:
http://msdn.microsoft.com/en-us/ff835850(v=office.15)
OriginalL'auteur Chris Strickland
Je ne suis pas sûr que la raison de cela, mais peut-être que ça vous aidera. VB ne semble pas permettre d'accéder à une des cellules de couleur lorsque cette couleur est basée sur la mise en forme conditionnelle.
Par exemple..
Cela étant dit, est-il une raison pour laquelle vous ne pouvez pas il suffit de tester la cellule pour quelque règles de mise en forme que vous avez, en effet. Ce qui permettrait d'éliminer la nécessité d'une UDF.
OriginalL'auteur Sam
Je voudrais effectuer une vérification préalable de l'index de la couleur de votre condition pour l'utilisation de ce:
Alors votre fonction
Une autre solution pour rendre les choses solide comme le roc, est de combiner à la fois la fonction de sorte que cfTest prend cfTest_color_chk en tant que paramètre et cfTest_color_chk sera de retour la valeur de la couleur pour correspondre à...
Espère que cette aide
Pascal
OriginalL'auteur pascalb