Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Derniers caractères en rouge si Numeric

  • Initiateur de la discussion Initiateur de la discussion Hulk
  • Date de début Date de début

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 !

Hulk

XLDnaute Barbatruc
Hello tout le monde 😀

Beau dimanche en perspective ! 🙂

En revanche je cale là...

Je souhaite afficher les derniers caractères d'une chaîne en rouge si ce sont des chiffres.

J'ai aussi essayé avec Right (les chiffres sont toujours en dernière position) mais sans succès.

J'avais, me semble t-il, déjà vu ça quelque part, mais je n'y retrouve plus.

Je cherche depuis hier en vain, là je commence à 😡 Grr.

Merci infiniment pour l'aide apportée.

Cdt, Hulk.
 

Pièces jointes

Dernière édition:
Re : Derniers caractères en rouge si Numeric

Bonjour Hulk 🙂,
Je sais pas où est le problème, mais quand je clique sur ta pièce jointe, j'ai un message lien non valide, contacter l'administrateur 😕.
Peux-tu remettre ton fichier ?
A + 😎
Ajout : Non, c'est bon maintenant, j'ai rien dit...
 
Dernière édition:
Re : Derniers caractères en rouge si Numeric

Re 🙂,
Je te propose ce code qui fonctionne en tout cas sur 2007
Code:
Dim Cellule As Range, Chaîne As String, I As Integer
For Each Cellule In Selection
Chaîne = Cellule.Value
For I = 1 To Len(Chaîne)
If IsNumeric(Mid(Chaîne, I, 1)) Then Exit For
Next I
With Cellule.Characters(Start:=1, Length:=I - 1).Font
    .ColorIndex = xlAutomatic
End With
With Cellule.Characters(Start:=I, Length:=Len(Chaîne) - I + 1).Font
    .ColorIndex = 3
End With
Next
A + 😎
 
Re : Derniers caractères en rouge si Numeric

Hello Jnp,

Impec, t'es trop cool 😀

Juste modifié...
Code:
For Each Cellule In Range("A2:A" & Range("A65536").End(xlUp).Row)
Et c'est tout bon sur 2003 aussi !

J'aurais dû le demander tout de suite, mais les chaînes de caractères n'étant pas mon fort, aurais-tu la gentillesse de commenter le code stp ?

Quoiqu'il en soit, merci infiniment 😉

Au plaisir, Hulk.
 
Re : Derniers caractères en rouge si Numeric

re

bon j'arrive trop tard mais j'avais fait ceci

Code:
Sub Macro1()

maligne = Range("A65536").End(xlUp).Row
For x = 1 To maligne
    y = Len(Range("A" & x))
    For z = y To 1 Step -1
        If Not IsNumeric(Mid(Range("A" & x), z, 1)) Then Exit For
    Next
    If z <> y Then Range("A" & x).Characters(Start:=z + 1, Length:=y - z).Font.ColorIndex = 3
Next
End Sub
 
Re : Derniers caractères en rouge si Numeric

Re 🙂,
Salut Pascal 😉, ton code est plus court que le mien, vu que tu t'occupe juste du contenu de la cellule.
Pour mon code commenté
Code:
Dim Cellule As Range, Chaîne As String, I As Integer
For Each Cellule In Selection
Chaîne = Cellule.Value
For I = 1 To Len(Chaîne) [COLOR=seagreen]' Len donne le nombre de caractères de la chaîne[/COLOR]
If IsNumeric(Mid(Chaîne, I, 1)) Then Exit For [COLOR=seagreen]' Mid extrait de la chaîne en fonction de la position et du nombre de caractères souhaités
[/COLOR]Next I
With Cellule.Characters(Start:=1, Length:=I - 1).Font [COLOR=seagreen]' Sélectionne les caractères que l'on veut en noir
[/COLOR]    .ColorIndex = xlAutomatic
End With
With Cellule.Characters(Start:=I, Length:=Len(Chaîne) - I + 1).Font [COLOR=seagreen]' Sélectionne ceux qu'on veux en rouge[/COLOR]
    .ColorIndex = 3
End With
Next
Bon dimanche 😎
 
Re : Derniers caractères en rouge si Numeric

Hello Pascal,

Ton code fonctionne aussi impec ! 😉

Comme je disais, les chaînes de caractères...

J'ai notamment des soucis avec les : Len, Mid, Start et Length, si vous pouviez juste me faire un ou deux petits commentaires... vous en serais gré.

J'ai oublié de le demander de suite 😀

Merci encore à vous.

Hulk.

EDIT : Oups merci Jnp !
 
Re : Derniers caractères en rouge si Numeric

Hello,

Vrai Pascal, me plonge dans les recherches, d'ailleurs j'suis déjà entrain d'analyser vos codes..

Bon dimanche !

@+, Hulk.
 
Re : Derniers caractères en rouge si Numeric

Bonjour Hulk, JNP et Pascal, bonjour à toutes et à tous 🙂

JNP à dit:
Salut Pascal 😉, ton code est plus court que le mien, vu que tu t'occupe juste du contenu de la cellule.

Tu peux faire aussi court 😉

Code:
Dim Cellule As Range, Chaîne As String, I As Integer
For Each Cellule In Range("A2:A" & Range("A65536").End(xlUp).Row)
  Chaîne = Cellule.Value
  For I = 1 To Len(Chaîne) ' Len donne le nombre de caractères de la chaîne
    If IsNumeric(Mid(Chaîne, I, 1)) Then Exit For ' Mid extrait de la chaîne en fonction de la position et du nombre de caractères souhaités
  Next I
  If I <= Len(Chaîne) Then Cellule.Characters(I).Font.ColorIndex = 3 ' colorie les nombres éventuels en rouge
Next Cellule

@+ 😀
 
- 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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…