Mise en forme conditionelle selon le contenu d'une cellule

Bonjour,

J'aimerai appliquer une mise en forme aux cellules A1:A10 qui contiennent au moins une des valeurs contenues dans la cellule D2 (valeurs séparées par un ";" ). Ce sera plus clair avec le fichier

Merci d'avance,

Bien cordialement

11classeur1.xlsx (8.05 Ko)

Bonjour,

peut-on dissocier les éléments de D2 ? Ce serait plus simple.

Je préfère qu'il y ai tous les chiffres dans la même cellule.

Après je veux bien une solution en dissociant les chiffres de D2, ce sera toujours ça

S'il n'y a que 2 chiffres en D2 alors on peut mettre ça comme MFC (appliquée à A1:A10) ;

=(ESTNUM(CHERCHE(GAUCHE($D$2;1);A1))+ESTNUM(CHERCHE(DROITE($D$2;1);A1)))>0

Merci pour ta réponse,

Par contre il me faudrait une formule qui marche si D2 contient 10/20 chiffres,

Ce serait vraiment parfait.

Je n'ai pas encore trouvé comment faire sans étaler le contenu de D2.

Pour ça on fait ceci, par exemple en E1 ;

=SIERREUR(STXT(";"&$D$2&";";TROUVE("#";SUBSTITUE(";"&$D$2&";";";";"#";LIGNE(1:1)))+1;TROUVE("#";SUBSTITUE(";"&$D$2&";";";";"#";LIGNE(2:2)))-TROUVE("#";SUBSTITUE(";"&$D$2&";";";";"#";LIGNE(1:1)))-1);"")

On étire vers le bas.

Si D2 contient 3 caractères, ça va donc de E1 à E3, et en MFC on met ;

=SOMMEPROD(($E$1:$E$3=GAUCHE(A1;1))+($E$1:$E$3=DROITE(A1;1)))>0

Mais je me doute que ce n'est pas l'idéal.

J'avais imaginé une matricielle sauf qu'elle ne fonctionne pas à cause de NB.SI qui ne fonctionne pas avec une matrice. Par contre ça marcherait avec une plage mais alors il faudrait étaler le contenu de chaque cellule sur une plage.

J'ai réussi à faire quasiment ce que j'avais en tête, seule petite contrainte : étaler le contenu de D2 dans un tableau.

Et on utilise 2 noms (1 pour le tableau et 1 pour une formule de MFC qui n'est pas acceptée si on la met directement dans la barre de formule de MFC), ce qui donne ;

excel mfc selon contenu cellule par aaaaaaaa d

On peut donc mettre à jour D2 (pas de limite au nombre de caractères) et le contenu de la colonne A sans devoir changer la formule.

En G2 on met ;

=SIERREUR(STXT(";"&$D$2&";";TROUVE("#";SUBSTITUE(";"&$D$2&";";";";"#";LIGNE(1:1)))+1;TROUVE("#";SUBSTITUE(";"&$D$2&";";";";"#";LIGNE(2:2)))-TROUVE("#";SUBSTITUE(";"&$D$2&";";";";"#";LIGNE(1:1)))-1);"")

On peut toujours mettre ce tableau sur une autre feuille.

Comme formule de MFC (nommée MFC_1, voir le Gestionnaire de noms) on a ;

=SOMMEPROD(NB.SI(DetaD2;STXT(Feuil1!$A1;LIGNE(INDIRECT("1:"&NBCAR(Feuil1!$A1)));1)))

Je me suis rendu compte qu'avec NB.SI on pouvait mettre une matrice comme critère mais pas comme plage.

Ce qui fait que DetaD2 est le nom de la plage (tableau en G) et la formule commençant par STXT est le critère créant une matrice allant chercher les caractères de chaque cellule en colonne A.

Pour appliquer la MFC on sélectionne les cellules de la colonne A et comme règle de MFC on met simplement ;

=MFC_1

Bonsoir à tous !

Une proposition ?

image

Salut,

ce serait bien de poster la formule pour qu'on ne soit pas obligé de télécharger le fichier, et une explication aussi

Je suis étonné que ta formule passe alors que la mienne qui est similaire ne passait pas, donc obligé de passer par une formule nommée.

Bonsoir,

là je suis d'accord Doux Rêveur ! Les réponses avec seulement fichier joint ! Je trouve que c'est de plus en plus souvent !

C'est vrai que certaine fois c'est lassant de devoir ouvrir tous ces fichiers pour une simple formule... Mais quelque fois c'est bien car le demandeur n'en fourni pas...

De mon côté autant que je puisse (possibilité ou envie) j'essaie de mettre les deux...

@ bientôt

LouReeD

Bonsoir à tous de nouveau !

ce serait bien de poster la formule pour qu'on ne soit pas obligé de télécharger le fichier......

Il est vrai que cela prend quelques petites secondes....

Et si on essayait de lutter contre ce besoin d'immédiateté ?

Salut,

on peut aussi formuler les choses dans l'autre sens, pourquoi vouloir compliquer l'accès à une formule alors qu'il suffirait de la poster entre balises, ce qui n'empêche pas de poster le fichier (c'est ce que je fais généralement). Faire durer le plaisir ?

Pour en revenir à la formule, quelle différence avec la mienne fait que la tienne passe comme MFC ?

Bonjour à tous !

Pour en revenir à la formule, quelle différence avec la mienne fait que la tienne passe comme MFC ?

N'ayant pas étudié vos formules , je ne suis pas en mesure de répondre.

Bonjour,

Merci pour vos réponses ! Celle de JFL me convient parfaitement ! Merci Doux Rêveur aussi d'avoir pris le temps de réfléchir au sujet

Bonne journée !

Bien cordialement !

Bonjour à tous de nouveau !

Bien....

Je vous remercie de ce retour.

JFL, vu que ta formule m'intrigue j'ai fait des tests et je ne comprends pas les résultats.

Elle ressemble à une matricielle mais fonctionne bien en MFC, alors j'ai voulu la tester dans une cellule et j'obtiens 1.

Si je la sauve en mode matriciel, j'obtiens 2, et si je remplace SOMME par SOMMEPROD et que je ne sauve pas en matriciel, j'obtiens 2 également (ça je peux comprendre puisque SOMMEPROD fonctionne avec des matrices).

Est-ce que ça veut dire que la MFC sauve d'office en matriciel, même sur Excel 2016 ?

Bonjour à tous,

Est-ce que ça veut dire que la MFC sauve d'office en matriciel, même sur Excel 2016 ?

Oui la MFC accepte les formules matricielles sans validation spécifique, depuis longtemps (toujours ?).

D'autre part en faisant la recherche dans l'autre sens vous pouvez simplifier cette formule :

=SOMMEPROD(--ESTNUM(CHERCHE(STXT(A1;LIGNE(INDIRECT("A1:A"&NBCAR(A1)));1);$D$2)))

Merci BeGood pour l'information, je n'avais jamais réalisé ça. Et bien vu pour la formule raccourcie.

Du coup le souci avec ma première formule ne devait pas être lié au fait qu'elle était matricielle, je dois comprendre ce qui empêchait sa validation en MFC.

Rechercher des sujets similaires à "mise forme conditionelle contenu"