Formater conditionnellement une cellule si elle contient une formule


18

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)?


Si vous voulez simplement voir rapidement quelles cellules contiennent des formules, vous pouvez taper Ctrl-`(c'est un back-tick, sur la même touche que ~ sur les claviers anglais) pour afficher les formules. Appuyez à nouveau sur la touche pour basculer.
yoyo

Réponses:


9

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

  1. Définir un nom de plage IsFormula = GET.CELL (48, INDIRECT ("rc", FALSE))
  2. Appliquer un test de mise en forme conditionnelle aux cellules pour la formule, c'est-à-dire = IsFormula avec un remplissage de couleur

Désolé, je n'ai pas testé votre réponse jusqu'à présent. Cette astuce est simple et belle. Accepté! Merci. (Au fait, le lien est rompu.)
Wilson

Testé et ça marche! J'ai dû trouver la définition correcte de la version italienne d'Excel 2007. Si vous avez Excel italien, vous devez utiliser = INFO.CELLA (48; INDIRETTO ("rc"; FALSO)) (veuillez noter le point-virgule à la place des virgules aussi)
Kar.ma

La mauvaise partie est que vous devez l'enregistrer en tant que fichier macro (par exemple .xlsm), et lorsque vous ouvrez le fichier, la coloration n'apparaît que lorsque vous activez les macros.
Kar.ma

Vous pouviez utiliser xlmsans aucun avertissement de macro, MSFT a changé l'approche de sécurité.
brettdj

10

S'appuyant sur la réponse de brettdj, parce que j'ai trouvé l'article lié assez difficile à suivre:

  1. Créez une nouvelle règle de mise en forme conditionnelle et sélectionnez Utiliser une formule pour déterminer les cellules à formater
  2. Insérez la formule suivante: =ISFORMULA(INDIRECT("rc",FALSE))
  3. Si vous souhaitez que la règle s'applique à l'ensemble de la feuille de calcul, $1:$1048576comme 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 ThisCellet j'utilise cela dans la formule, juste au cas où je reviendrais des années plus tard et penserais "à quoi sert-il?".


Ceci est la bonne réponse pour Excel 2013 et
versions

1
Au lieu d'utiliser 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
Micah Lindström

4

Vous pouvez les essayer:

VBA

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:

  1. Mettez en surbrillance la colonne A
  2. Accédez à Mise en forme conditionnelle > Nouvelle règle > Utilisez une formule pour déterminer les cellules à formater
  3. Utilisez le ff. formule:=IsFormula(A1)

Non VBA

  1. Appuyez sur F5ou Ctrl+G
  2. Cliquez sur Spécial .
  3. Choisissez Formules et cliquez sur OK . Cela met en évidence toutes les cellules de la feuille de calcul qui contient des formules.
  4. Configurez le format que vous souhaitez utiliser.
    Ou
    allez dans Styles de cellule (sous l'onglet Accueil) et choisissez un style que vous souhaitez associer aux cellules contenant une formule. Pour changer l'apparence, faites un clic droit sur le style que vous avez sélectionné et cliquez sur Modifier . Toutes les cellules dotées de ce style seront automatiquement mises à jour.

bien que personnellement je ne préfère pas utiliser VBA, la solution VBA est meilleure dans ce cas car le formatage des cellules peut être modifié dynamiquement lorsque la formule est entrée dans une cellule (ou vice versa). Merci.
Wilson

4

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.

A3est é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.



1

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 IsFormulaune fonction standard.


-1

Vous pouvez également utiliser une mise en forme conditionnelle:

  1. Sélectionnez la plage de cellules à laquelle vous souhaitez appliquer votre mise en forme conditionnelle
  2. Dans Accueil -> Formatage conditionnel -> Nouvelle règle: utilisez une formule pour détecter la cellule à formater
  3. Dans Formater les valeurs lorsque cette formule est vraie, mettez: =HasNoFormula
  4. Sélectionnez le format souhaité

Testé avec Excel 2010.


Votre réponse est incomplète. Je ne pense pas que vous ayez testé.
wilson

2
-1, cela ne fait rien. Qu'est-ce que = HasNoFormula est censé faire?
toryan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.