Caractère en couleur selon condition

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 !

anthoYS

XLDnaute Barbatruc
Bonjour,

Je souhaite savoir si c'est possible (avec une MEFC ou autre), de colorer le dernier caractère d'une chaîne (de 3 caractères contenu dans une même cellule séparé d'un espace).
De plus seulement, si le caractère est minuscule -si possible egalement-.

Exemple fourni dans le fichier.

Car mon souci, c'est que la MEFC que j'ai instauré me colorie toute la chaîne (chaque fois).

Merci.
 

Pièces jointes

Re : Caractère en couleur selon condition

Bonjour,

par un code évènementiel, cela est possible

Tu fais un clic droit sur le nom de l'onglet, "Visualiser le code", et colle ce code :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
    If Not Intersect(Target, Union(Range("A5"), Range("C5"))) Is Nothing Then
        If Len(Target) = 5 Then
            If UCase(Right(Target, 1)) <> Right(Target, 1) Then
                Target.Characters(Start:=5, Length:=1).Font.ColorIndex = 37
            End If
        End If
    End If
End If
End Sub

Ici, je teste que la plage modifiée ne comporte qu'une cellule, puis
Si la cellule modifiée est soit A5, soit C5 (à adapter, en fonction de tes besoins), puis
Si le nombre de caractères de la cellule modifiée est de 5, puis
Si le dernier caractère, mis en majuscule, est différent de ce dernier caractère (donc, il est en minuscule), donc :
on colorie le dernier caractère en bleu pâle

Attention, ce code impose que tu n'utilises pas l'Option Compare Text, en haut de module, et qui permet de s'affranchir de la casse lors des recherches.
 
Re : Caractère en couleur selon condition

Merci, par contre si je fait glisser les cellules vers le bas, ce code sera t-il toujours valable?

Car le but étant d'automatiser le tout, de sorte que d'une plage vide on puisse retrouver le dernier caractère coloré si la condition est rempli.

En fait je comprend mais si je veux en rajouter plein d'autres à la suite, exemple (C5, E5, G5...), et ceux jusqu'à la fin, est-ce possible. Puis rajouter un autre code, relatif à une autre colonne de la même ligne, qui cette fois colorira un nombre.

Merci.
 
Dernière édition:
Re : Caractère en couleur selon condition

Re,

cela peut être possible, mais je ne comprends pas trop ce que tu veux faire exactement....😕

Tu souhaites faire une recopie incrémentée? De quoi?

Si ta première cellule remplit les conditions, dans le cas d'une recopie incrémentée, les cellules recopiées vont prendre le même format......

Remets un fichier exemple, au plus près de ce que tu désires obtenir, cela évitera les réponses en pointillées......
 
Re : Caractère en couleur selon condition

Re,

Quelques explications complémentaires, stp....

Pour la colonne E, le dernier caractère ne peut être que "e", "E", "k" ou "K"?
Uniquement ces 4 valeurs?

Si "e" minuscule, on colorie, et si "K" majuscule, on colorie également?

De plus, tu cites :

Ou bien si les cellules E3 et E5 sont valables et qui si l'on recopie vers le bas, elle fonctionne si l'on efface et réécrit.

Quelle méthode?
Par recopie incrémentée, ou par Copier/Coller?

Pour la colonne J, uniquement si le dernier chiffre est 9?

De plus, veux-tu que cela se provoque au changement de valeur par un code évènementiel, ou tu veux tester toutes les cellules d'un coup (ça risque de prendre du temps....)?

Enfin, tes cellules ne sont remplies que toutes les 2 lignes, ou cela peut être dans n'importe quelle ligne?
 
Re : Caractère en couleur selon condition

Re,

Pour la colonne E, le dernier caractère ne peut être que "e", "E", "k" ou "K"?
Non, ça peut-être un autre caractère -et dans ce cas on ne coloris pas bien sur-.

Uniquement ces 4 valeurs?
Oui, à colorier, et non -pour la chaîne- (voir réponse question précédente).

Si "e" minuscule, on colorie, et si "K" majuscule, on colorie également?
Alors, oui mais séparément. le "e" soit/-ou- et en E3, E9 (pour l'exemple), et le "K" uniquement en E5 ou E11 (toujours dans l'exemple).

Quelle méthode?
Par recopie incrémentée
Tu y a répondu.

Pour la colonne J, uniquement si le dernier chiffre est 9?
Exactement.

De plus, veux-tu que cela se provoque au changement de valeur par un code évènementiel, ou tu veux tester toutes les cellules d'un coup (ça risque de prendre du temps....)?
Je souhaite qu'elles (les cellules) soient "prêtes", à savoir, pour les prochaine saisies (voir le fichier exemple ci-contre).

Enfin, tes cellules ne sont remplies que toutes les 2 lignes, ou cela peut être dans n'importe quelle ligne?
Toute les 2 lignes (et trois lignes vide), alternances 3/2... ou plutôt, 3 lignes vides, une remplie, une vide, une remplie, et on recommence.
(et l'exemple revu le "prouve").
 

Pièces jointes

Dernière édition:
Re : Caractère en couleur selon condition

Re,

essaie ce code :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
    If Not Intersect(Target, Union(Columns(5), Columns(10))) Is Nothing Then
        If Len(Target) > 0 Then
            Select Case Target.Column
                Case 10
                    If Right(Target, 1) = 9 Then _
                        Target.Characters(Start:=Len(Target), Length:=1).Font.ColorIndex = 37
                Case 5
                    If Target.Row Mod 6 = 0 And Right(Target, 1) = "K" Then _
                        Target.Characters(Start:=5, Length:=1).Font.ColorIndex = 37
                    If (Target.Row + 2) Mod 6 = 0 And Right(Target, 1) = "e" Then _
                        Target.Characters(Start:=5, Length:=1).Font.ColorIndex = 37
            End Select
        End If
    End If
End If
End Sub

Si tu sélectionnes une "plage", et que tu fais une recopie incrémentée, les caractères colorés le resteront.
Si tu modifies ce dernier caractère, il redevient en police normale
Si tu remets un "e", ou un "K", ou un 9, il se colorie

Reviens si pas ça...
 
Re : Caractère en couleur selon condition

Re,

J'adore :


Non, pour ma part ça ne fonctionne pas.

Mezenplus? 😉

Rien ne se passe?
As-tu validé l'autorisation d'exécution des macros?

regarde ton fichier modifié :
 

Pièces jointes

Re : Caractère en couleur selon condition

Re,

pour activer les macros, sous 2007 :

Clic sur l'icône "Office", en haut à gauche

Puis sur "Options Excel", en bas à droite

Dans l'item "Standard", valide "Afficher l'onglet Développeur dans le ruban"

Tu as alors un nouvel onglet

A gauche, clique sur "Sécurité des Macros", et sélectionne "Désactiver toutes les macros avec Notification"

A l'ouverture du fichier, une barre d'alerte te prévient que les macros ont été désactivées............etc

Clique sur "Options", et "Valide le contenu"

Ainsi, tu reste maître d'activer ou non les macros
 
Re : Caractère en couleur selon condition

Re-,

lorsque tu as la boîte "Avertissement de sécurité", après avoir appuyé sur "Options", tu sélectionnes "Activer ce contenu"

Ceci te permet d'utiliser les macros provenant de personnes en lesquelles tu as confiance, et de ne pas les activer, le cas échéant

Maintenant, si tu veux que mon code fonctionne, à toi de voir.....🙂🙂
 
- 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
16
Affichages
2 K
Réponses
9
Affichages
874
Retour