EXCEL: mise en forme conditionnelle 2 valeurs

Résolu/Fermé
Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024 - 2 nov. 2008 à 14:25
Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024 - 3 nov. 2008 à 09:42
Bonjour,

J'applique une mise en forme conditionnelle à une cellule en fonction de la cellule précédente renseignée ou non. Dans l'exemple ci-après, le fond de la cellule J2 devient rouge si elle n'est pas renseignée (nulle donc) ALORS QUE la cellule I2 est renseignée:

=SI(I2="";J2<>"";SI(ESTERR(CODE(J2));VRAI;ET(CODE(J2)<>68;CODE(J2)<>72)))

Les valeurs de la cellule J2 pouvant être "D" ou "M" (en majuscule), je ne sais pas comment l'indiquer dans la condition. J'ai essayé de mettre 2 conditions
1 - =SI(I2="";J2<>"D";SI(ESTERR(CODE(J2));VRAI;ET(CODE(J2)<>68;CODE(J2)<>72)))
2 - =SI(I2="";J2<>"M";SI(ESTERR(CODE(J2));VRAI;ET(CODE(J2)<>68;CODE(J2)<>72)))

mais ça ne marche pas.

A ce propos, est-il possible de forcer la saisie en MAJUSCULE dans une cellule ?

merci d'avance pour votre aide.

Cordialement
A voir également:

13 réponses

wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 243
2 nov. 2008 à 20:20
Bonjour à tous, Raymond

Tu mets dans ta liste de validation D;M, tu ne prend donc que D et M en majuscule, il est vrai que si tu saisies d ou m en Minuscule tu vas avoir du mal à le faire marcher

soit tu mets dans ta liste de validation : D;d;M;m
soit tu modifies ton controle de validation en mettant personnalisé
et en formule : =OU(A1="D";A1="d";A1="M";A1="m")

il acceptera soit M,m,D,d
1
manet61 Messages postés 202 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 9 juin 2018 179
2 nov. 2008 à 14:44
Bonjour,

On peut forcer les majuscules dans une cellule.

Par exemple:

Faire la saisie dans la cellule A1 (en lettres minuscules ou majuscules ou tout mélangé).

Dans la cellule B1 (où vous voulez avoir des majuscules) entrer la formule suivante:

=majuscule(a1)

corrélativement, si vous voulez avoir que des minuscules, la formule sera: =minuscule(a1)

Si vous voulez que seule la 1ère lettre soit en majuscule, la formule sera: =nompropre(a1)

Une astuce: Saisir toujours les formules en lettres minuscules. Si elles passent toutes seules en majuscules à la validation c'est qu'il n'y a pas d'erreur de syntaxe. Sinon revoir la saisie.

A+
0
Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024 19
2 nov. 2008 à 15:05
bonjour,

merci pour votre réponse, mais je n'arrive pas à appliquer votre conseil: comment dois-je entrer la formule
=nompropre(a1) ou =majuscule(a1) : dois-je la saisir dans la case en haut ??

Je ne vois pas non plus la référence à a1 pour la cellule B1 ????

Et pour la mise en forme conditionnelle, savez-vous comment faire ?

cordialement
0
Re-bonjour

J'ai regardé d'un peu plus près votre problème, voici la formule que je vous propose:

=SI(I2="";"D";SI(OU(I2="j";I2="J");"J";SI(OU(I2="m";I2="M");"M";"")))

Ce qui fait que:

si la cellule I2 est vide, en J2 vous aurez "D".
si en I2 vous avez "j" ou "J" en J2 vous aurez "J",
si en I2 vous avez "m" ou"M" en J2 vous aurez "M"
Pour toutes les autres lettres de l'alphabet la cellule J2 restera vide.

Recopier ensuite cette formule en prenant le petit carré noir situé en bas, à droite de la cellule et balayez la longueur de colonne dont vous avez besoin.

Est-ce que cela résout votre problème?

A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024 19
2 nov. 2008 à 15:45
re-bonjour,

Je me suis sans doute mal exprimé. Ce que je voudrais:

- tant que la cellule I2 est vide, la cellule J2 reste vide et couleur d'arrière plan transparente.
- Dès que la cellule I2 est remplie (par n'importe quel texte), la couleur d'arrière plan de J2 devient rouge tant que la
saisie en J2 n'est pas égale à "D" ou "M" (en majuscule).

J'espère que c'est plus clair ?

Est-ce que la formule que vous me proposiez force les majuscules en J2 ?

merci d'avance pour la solution.
cordialement
0
manet61 Messages postés 202 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 9 juin 2018 179
2 nov. 2008 à 16:13
Re-bonjour,

Oui la formule force les majuscules.

Par contre pour le problème des couleurs il faut passer en programmation les formules ne le font pas.

A+
0
Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024 19 > manet61 Messages postés 202 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 9 juin 2018
2 nov. 2008 à 16:25
bonjour,

Pourquoi dis-tu que le problème des couleurs n'est pas traité par les formules, puisque celle que j'utilise actuellement fonctionne très bien ?
Ce que je voudrais améliorer, c'est contrôler que la valeur saisie en J2 est égale à "D" ou "M" et en majuscule au lieu de différent de vide.

cordialement
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024
2 nov. 2008 à 16:30
Bonjour tout le Monde,

si j'ai pigé la demande:
=(I2<>"")*ESTERREUR(TROUVE("D";J2))*ESTERREUR(TROUVE("M";J2))
0
Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024 19 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
2 nov. 2008 à 17:08
bonjour,

C'est tout à fait cela, mais si je pouvais forcer les majuscules D ou M, ce serait parfait !

merci pour votre aide à tous.

cordialement
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024
2 nov. 2008 à 17:15
Bonjour Ibow
Je ne sais pas si c'est à moi que tu répond mais si hasard c'était le cas, je te signale que tu n'as pas besoin de forcer ta cellule en majuscule puisque la fonction "TROUVE" est sensible à la casse
maintenant, tu fais ce que tu veux...
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
2 nov. 2008 à 16:02
"comment dois-je entrer la formule =nompropre(a1) ou =majuscule(a1) : dois-je la saisir dans la case en haut ?"

manet61 t'a expliqué "Faire la saisie dans la cellule A1 (en lettres minuscules ou majuscules ou tout mélangé). Dans la cellule B1 (où vous voulez avoir des majuscules) entrer la formule suivante: =majuscule(a1)"
Donc il faut faire ta saisie en A1 et écrire ta formule en B1, où le texte de A1 s'affichera en majuscules.

Moi, je te proposerais une autre solution ► Choisis comme police : Balloonist SF, Castellar, Cooperplate, Engravers, Felix titling, Goudy stout, Invite engraved, Perpetua titling, Stencil ou Algerian, qui n'ont que des caractères majuscules.
0
Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024 19
2 nov. 2008 à 16:31
bonjour,

Je comprends pourquoi cela ne marche pas, il fallait ajouter une colonne !!! ce qui n'est pas très élégant......

Quant à votre proposition d'utiliser les polices n'affichant que des majuscules, ça ne résoud pas le problème, il faut quand même saisir en majuscule pour que le contrôle soit opérant.
cordialement

PS: je suis sous EXCEL 2000
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096 > Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024
2 nov. 2008 à 16:50
"Je comprends pourquoi cela ne marche pas, il fallait ajouter une colonne, ce qui n'est pas très élégant"
Ce n'est pas l'élégance qui est prioritaire, mais l'efficacité.
Tu aurais pu demander aux utilisateurs de bien vouloir saisir M ou D en majuscules. Ce serait un peu directif mais resterait élégant.
Si ça t'ennuie d'insérer une colonne A pour avoir l'affichage majuscule en B, fais tes saisies en colonne Z et tapes en A1 la formule =MAJUSCULE(Z1).

"Quant à votre proposition d'utiliser les polices n'affichant que des majuscules, ça ne résoud pas le problème, il faut quand même saisir en majuscule pour que le contrôle soit opérant."
Là, par contre, tu as parfaitement raison. J'ai utilisé cette astuce dans d'autres contextes, qui n'utilisaient pas la fonction CODE() mais directement la comparaison =SI(G6="M"; ...).
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
2 nov. 2008 à 16:16
Tu travailles sur Excel 2007 ou une version antérieure ? En effet la mise en forme conditionnelle ne se manipule pas de la même manière.
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
2 nov. 2008 à 17:15
- tant que la cellule I2 est vide, la cellule J2 reste vide et couleur d'arrière plan transparente. 
- Dès que la cellule I2 est remplie (par n'importe quel texte), la couleur d'arrière plan de J2 devient rouge tant que la 
saisie en J2 n'est pas égale à "D" ou "M" (en majuscule).
Comme j'évite les formules compliquées quand ce n'est pas indispensable, et comme Excel 2000
propose tout de même 3 possibilités de condition de mise en forme, j'aurais tendance à opérer ainsi :
* Remplissage rouge de la cellule J2.
* Condition1 : Valeur de la cellule égale à ="D" ► Format/Remplissage/Aucune couleur.
* Condition2 : Valeur de la cellule égale à ="M" ► Format/Remplissage/Aucune couleur.
* Condition3 : Utiliser une formule =$I$2="" ► Format/Remplissage/Aucune couleur.
C'est plus simple à comprendre et à saisir ; ça permet en particulier de revenir sur le format,
et de varier la couleur de fond, si on le désire, selon qu'est affiché D ou M.

Cordialement.
0
manet61 Messages postés 202 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 9 juin 2018 179
2 nov. 2008 à 18:16
Bonjour,

Dans les formules Excel la fonction "Format, Remplissage" n'existe pas.

Pour résoudre le problème des couleurs de fond il faut passer par une macro dans une boucle tant.que pour faire l'analyse puis choisir la couleur du fond

Cordialement
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
2 nov. 2008 à 17:56
Tu n'as jamais précisé si tu veux que seuls les caractères "D" et "M" soient acceptés en J2.
Si c'est bien le cas, ton problème de majuscule est résolu : Tu mets une liste déroulante dans la cellule J2 avec comme uniques valeurs "D" et "M" !
0
Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024 19
2 nov. 2008 à 18:08
La liste déroulante peut résoudre mon besoin, mais je ne suis pas très fort en Excel et je ne sais pas comment insérer cela (j'ai essayé de trouver la solution dans le help, mais sans succès)

Merci pour ton aide.
cordialement
0
Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024 19
2 nov. 2008 à 18:17
J'ai trouvé comment créer une liste déroulante: j'ai précisé uniquement "D" et "M", mas si je saisis "d" ou "m", on me répond que ça ne correspond pas à la liste ??????
cordialement
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096 > Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024
2 nov. 2008 à 19:37
Mais c'est ce qu'on veut : Obliger l'utilisateur à choisir entre 2 valeurs "D" et "M".
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
2 nov. 2008 à 20:25
Re,

J'ai été obligé d'arrêter cause orage (alerte orange...)

ibow: as tu essayé ce que je t'ai écrit ?

Si tu refuses "m" ou "d" comme saisie valable, ma formule est valable...

Si tu veux absolument monter "m" et "d" en "M" et "D" dans la cellule, une macro événementielle est nécessaire comme l'a indiqué Manet mais cela est l'exemple de "pourquoi faire simple quand on peut faire compliqué"

Si la saisie de "m" "d" "M" "D" est indifférente la formule devient:
=(I2<>"")*(J2<>"m")*(J2<>"d")

Dans tout les cas tu peux écrire ce que tu veux ("zaza", "titi", 12345,67) dans J2

0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 243
2 nov. 2008 à 20:33
salut michel

on ne peut pas t'envoyer de messages privés ??? ou je ne sais pas faire lol
j'ai fiat en partie ce que tu m'as demandé, certains étaient malheureusement absent...

@ bientôt
Amicalement
Wilfried
0
evevdll Messages postés 81 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 13 décembre 2009 51
2 nov. 2008 à 20:49
Bonsoir,
Pour la mise en forme conditionnelle
ce n'est pas remplissage mais motifs que tu dois avoir pour ajouter un fond en couleur. Pour avoir une seule mise en forme conditionnelle, saisir cette formule
=ET($I$2="";OU($J$2="D";$J$2="M"))
J'espère que cela te conviendra mais ça ne résoud pas le problème de la casse (majuscule)
Bon courage
Eve
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
2 nov. 2008 à 21:55
Exact : Le terme "remplissage" est celui de la version 2007. En 2000 l'onglet portait encore la dénomination "motifs".
Et avec ta formule, avec une police Arial et sous Excel 2007, "M" et "m" donnent le même résultat !
0
Utilisateur anonyme
2 nov. 2008 à 22:53
Et bien quel débat.
A priori, la solution est dans une mise en forme des cellules. Pas dans la formule. "Forcer" quoique ce soit s'il s'agit d'une saisie manuelle peut être géré par une liste.
0
Raymond PENTIER Messages postés 58393 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 23 avril 2024 17 096
2 nov. 2008 à 23:35
Il s'agit précisément de la formule utilisée dans la condition de mise en forme conditionnelle.
La liste déroulante est la proposition que j'ai faite au post 15 ; mais je ne sais pas comment Ibowl a défini sa validation de données !
0
Ibowl77 Messages postés 366 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 14 janvier 2024 19
3 nov. 2008 à 09:42
bonjour à tous et un grand merci pour vos efforts à m'aider.

Finalement, j'ai réussi à couvrir mon besoin par une combinaison de listes déroulantes et de mise en forme conditionnelle (sauf le pb de casse). Ca m'a même donné des idées pour d'autres cellules ...... et le résultat est très satisfaisant. J'ai beaucoup appris sur ces contrôles !

cordialement.
0