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 !
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).
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.
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.
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?
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....)?
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").
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
Non. Je ne sais pas comment faire. Dans ton exemple le "9" n'est pas coloré.
Rien, j'ai recopier vers le bas la plage, une fois effacé, je réécris et rien.
- 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