Est-il possible de formater conditionnellement une cellule si la cellule contient une formule (pour m'alerter ainsi que les autres utilisateurs lors de la mise à jour de la cellule)?
Est-il possible de formater conditionnellement une cellule si la cellule contient une formule (pour m'alerter ainsi que les autres utilisateurs lors de la mise à jour de la cellule)?
Réponses:
Vous pouvez utiliser la mise en forme conditionnelle pour ce faire en utilisant XLM et les noms de plage
J'ai un article plus long sur l' utilisation de XLM avec les noms de plage et la mise en forme conditionnelle pour formater automatiquement les feuilles de calcul en fonction du contenu des cellules
xlm
sans aucun avertissement de macro, MSFT a changé l'approche de sécurité.
S'appuyant sur la réponse de brettdj, parce que j'ai trouvé l'article lié assez difficile à suivre:
=ISFORMULA(INDIRECT("rc",FALSE))
$1:$1048576
comme la plage à appliquer. Sinon, vous pouvez entrer n'importe quelle plage.La formule INDIRECT("rc",FALSE)
renvoie la référence de la cellule actuelle. Si jamais j'utilise ceci dans une feuille, je crée un nom défini appelé quelque chose comme ThisCell
et j'utilise cela dans la formule, juste au cas où je reviendrais des années plus tard et penserais "à quoi sert-il?".
INDIRECT("rc",FALSE)
, utilisez le référencement relatif avec la cellule en haut à gauche de votre plage de mise en forme conditionnelle "S'applique à". Par exemple, si votre plage "S'applique à" l'est =$A$3:$F$300
, utilisez =ISFORMULA(A3)
. Cela fonctionne car le formatage conditionnel prend en charge le référencement relatif, voir ceci
Vous pouvez les essayer:
Créez une fonction personnalisée avec le code suivant:
Function IsFormula(ByVal Ref As Range) As Variant
If Ref.Cells.Count > 1 Then
IsFormula = CVErr(xlErrNA)
Else
IsFormula = Ref.HasFormula
End If
End Function
Exemple:
Pour vérifier si des cellules de la colonne A ont des formules:
=IsFormula(A1)
Il existe un moyen très simple de le faire, testé dans Excel 2016.
Mettez en surbrillance votre gamme à laquelle vous souhaitez que cela s'applique, disons de A3:W20
. Accédez au formatage conditionnel et sélectionnez NEW RULE | USE A FORMULA TO DETERMINE WHICH CELLS TO FORMAT
.
Insérez =isformula(A3)
et choisissez le format que vous souhaitez appliquer.
A3
est évidemment une référence à la première cellule de votre plage mais cette mise en forme s'applique alors à tous. Le résultat est que dans votre plage, toute cellule qui est une formule est mise en forme conditionnellement.
Les nouveaux sites d'aide recommandent une fonction définie par l'utilisateur:
Function IsFormula(cell) as boolean
IsFormula = cell.HasFormula
End Function
Ensuite, utilisez cette fonction comme condition
Et en fait, Excel 2013 et versions ultérieures ont IsFormula
une fonction standard.
Vous pouvez également utiliser une mise en forme conditionnelle:
=HasNoFormula
Testé avec Excel 2010.