Mise en forme conditionnel

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

GuillaumeG

XLDnaute Nouveau
Bonjour à tous.

Je vous contact car depuis plusieurs heures je cale sur ce probleme.
Peut etre d'ailleurs est ce impossible! Mais je suis sur que vous allez trouver la solution.

J'ai une page remplie de données chiffrés allant de -10 à 80.

Ce qu'il me faut est de pouvoir baré en diagonale de Gauche à droite les cases inférieures ou égales à 0 de facon automatique.
Il faut que la case, ne soit baré que d'un seul trait.

Quand je vais dans la mise en forme conditionelle, je mets la condition que toutes cases inférieure ou égale à 0 se mette sous la forme désiré, je vais ensuite dans format, et je ne peux pas mettre la mise en forme désiré.
Je ne peux pas mettre de trait diagonaux. pourquoi?

qu'est ce que vous pouvez me proposer comme autre solution?

Merci d'avance de votre aide.

Guillaume

PS: vous trouverez dans le fichier joint le probleme et le lay out qu'il me faudrait dans l'encadré, et non pas celui actuel en rouge.
Merci d'avance de votre aide
 
Dernière édition:
Re : Mise en forme conditionnel

Bonjour GuillaumeG et bienvenue, salut Jean-Claude 🙂,
Les diagonales ne sont pas prévues dans les mises en forme des MFC 😱...
Par contre, tu peux passer par VBA 😛...
En sélectionnant les cellules à traiter
Code:
Sub test()
Dim Cellule As Range
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
For Each Cellule In Selection
    If Cellule <= 0 Then
        With Cellule.Borders(xlDiagonalUp)
            .LineStyle = xlContinuous
            .Color = -16776961
            .TintAndShade = 0
            .Weight = xlThick
        End With
    End If
Next Cellule
End Sub
Bonne journée 😎
Ajout : Re TotoTiti 😛
 
Dernière édition:
Re : Mise en forme conditionnel

Bonjour Guillaume, bonjour JCGL 🙂,

Bienvenue sur XLD,

Oui, la mise en forme conditionnelle n'a jamais pu mettre des traits de bordures en diagonales, ça n'est pas possible
Est-ce qu'une autre mise en forme te conviendrait, ou faut-il envisager d'appliquer la mise en forme par macro ?

Edit : bing, Bonjour JNP 😉
 
Re : Mise en forme conditionnel

Merci pour toutes ces réponses rapide.

hélas la mise en forme m'est imposé, donc non je ne peux pas la mettre autrement.

Sinon par le language VBA, si je comprends bien JNP, je peux forcer la mise en forme actuel et la remplacer par celle qaue je souhaiterais? c'est bien ca?

autre probleme: je ne sais pas comment ni ou on doit ecrire le language VBA. (je n'ai aucune connaisance du language hélas)
Merci de votre aide
 
Re : Mise en forme conditionnel

Re 🙂,
Tu ouvres ton fichier, tu saisis Alt+F11, Si tu n'as pas une arborescence à gauche, tu saisis Ctrl+r, dans l'arborescence, tu ouvre ton classeur, clic droit -> Insertion -> Module, et dans le module, tu colles la macro que te t'ai écrite.
Dans ton classeur, tu sélectionnes la plage à traiter, tu saisis Atlt+F8, tu sélectionnes Test et tu cliques sur Exécuter 😛...
Bonne suite 😎
 
Re : Mise en forme conditionnel

roo la la JNP vous etes merveilleux.
un tout grand merci de votre aide.

Je suis juste entrain de repenser le systeme, et je vais peut etre avoir une petite modification a faire.
genre mettre des titres au dessus des colonnes, et peut etre savoir s'il y a moyen de forcer les donnés.

je vous posterai plus tard la feuille excel pour que vous y voyez plus clair dans ce que je vous dis.

en tout cas deja un tout grand merci pour cette solution au casse tete qui se posait à moi!

bonne journee
 
Re : Mise en forme conditionnel

Bonjour a tous.

Voici mon fichier final amélioré.

Il y a encore quelques petits détails que je souhaiterais regler.
Par exemple, que la mise en forme (merveilleuse que JNP m'a programme) ne se fasse qua dans les case contenant des chiffres. est ce possible?

De meme est ce possible de forcer le systeme à barrer ou non un chiffre à une date.

par exemple, que les case que je met en fond Jaune se bare automatiquement avec la mise en forme, meme si elles sont supérieure à 0
et de meme, que les cases qui sont en vert, refuse automatiquement la mise en forme, meme si elles sont inférieurs à 0.

Merci de votre aide
et bonne journée à tous

Guillaume
 

Pièces jointes

Re : Mise en forme conditionnel

Re 🙂,
C'est juste une question d'enrichir le test 🙄
Code:
    If Cellule <= 0 And Cellule <> "" And InStr(1, Cellule.Text, "/") = 0 _
    And Cellule.Interior.ColorIndex <> 43 _
    Or Cellule.Interior.ColorIndex = 6 Then
A voir pour la valeur des ColorIndex, tu n'as pas mis de cellules en couleur dans ton fichier 😛...
Bonne suite 😎
 
Re : Mise en forme conditionnel

rolala vous etes merveilleux, merci enormement pour cette aide.

juste deux dernieres petites questions!
ou est ce que je trouve le color index?

les couleurs que je souhaite avoir est le orange (celui qu'on trouve dans la barette de racourci de fond de cellule) pour les chiffres au dessus de 0 qui doivent etre barré
et le vert pour les chiffres en dessous ou egal a 0 qui ne doivent pas etre barré. tjs celui par defaut dans la bare de racourci.

mais si vous me dites ou je peux trouver ce color index ce serais encore mieux comme ca je pourrais faire varier les couleurs si besoin est.

Et est ce possible par exemple d'ajouter du texte dans les cases, (le texte 🙁A,F, AF, CTA,MS,*) ) que ce texte se retrouve en haut a gauche et le chiffre en bas a droite de la case.
tout en gardant la bare de diagonal de bas en haut si la case devait etre barée.

De meme manuellement je bare de temps en temps les cases en diagonale down, si cette case répond aux conditions de mise en forme, il faudrait qu'elle conserve les 2 diaogonales. ainsi que de garder le fait que le texte s'affiche en haut a gauche de la case et les chiffres en bas à droite de la case.

si la diagonale down pouvait rester en noir et la diagonaleup pouvait rester en rouge ce serait parfait, mais ce n'est pas une obligation.

Merci d'avance.

si vous savez me faire ca je vous enverais bien une petite boite de praline pour vous remercier. car je suis sur le probleme depuis pres de 2 semaines et je n'arrivais pas a trouver une solution, et la vous me sauvez la vie c'est merveilleux. merci pour tout.

guillaume
 
Dernière édition:
Re : Mise en forme conditionnel

Re 🙂,
T'as pas l'impression de devenir de plus en plus exigeant ? 🙄
Pour connaître la couleur de ta cellule
Code:
Sub test()
MsgBox Selection.Interior.ColorIndex
End Sub
te donnera l'index de la cellule sélectionnée 😀...
Code:
    Cellule.NumberFormat = _
        "_-[$CTA-409]* #,##0.00_ ;_-[$CTA-409]* -#,##0.00 ;_-[$CTA-409]* ""-""??_ ;_-@_ "
Te mettras CTA à gauche, si tu veux pas de décimales remplace #,##0.00 par #,##0 😛
Par contre, pas de gestion haut/bas à ma connaissance 🙄...
Mon code efface et remet uniquement les diagonales montantes, ça ne devrait pas modifier les diagonales descendantes 😱
Bon courage 😎
 
Re : Mise en forme conditionnel

Et j'ai encore une petite question technique, quitte a etre de plus en plus exigeant 😛

1) comment est ce que je fais pour que le module reste de facon permanente sur la feuille et que je ne doivent faire que alt + f8 pour l'activer?
car pour le moment je fais tjs alt + f11, je le colle et ensuite alt + f8 pour l'activer mais ce n'est pas tjs hyper pratique !!
donc si vous avez une solution je suis preneur!

2) mes chiffres sont liés à une formule. est ce que vous savez si c'est possible d'ajouter les lesttres A,F,FA,CTA et MS, car si je mets à jour les donnés et que j'ai ecrits manuellement une de ces lettres + le chiffre, la formule sera effacé et les donnés ne seront donc pas a jour.

si ce n'est pas possible ce n'est pas grave ;-) mais il faut tjs essayer de penser a tout !!
je ferai avec des codes couleurs maintenant que vous m'avez montré comment faire!!

ici est le code remodifier que vous m'avez donné, mais je ne sais pas ou mettre le cellule number format?

Sub test()
Dim Cellule As Range
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
For Each Cellule In Selection
If Cellule <= 0 And Cellule <> "" And InStr(1, Cellule.Text, "/") = 0 _
And Cellule.Interior.ColorIndex <> 14 _
Or Cellule.Interior.ColorIndex = 44 Then
With Cellule.Borders(xlDiagonalUp)
.LineStyle = xlContinuous
.Color = -16776961
.TintAndShade = 0
.Weight = xlThick
End With
End If
Next Cellule
End Sub


merci d'avance

Guillaume
 
Dernière édition:
Re : Mise en forme conditionnel

Re 🙂,
Eh, faut bosser un peu 😱...
Le code que je t'ai donné est un code de format personnalisé de cellule, il est évidemment à mettre dans un test pour savoir quelles sont les lettres que tu veux mettre. Mais comme je n'ai pas les valeurs concernées, je ne vois pas comment te fournir plus... Vu que c'est un format, il conservera ta formule 🙄...
Et il parait évident que pour avoir FA, il faut remplacer CTA par FA dans le format 😡...
Pour garder le code, enregistre au format XLSM, le XSLX efface les macros 😱...
Bon courage 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
138
Réponses
2
Affichages
107
Réponses
25
Affichages
627
Retour