Je ne sais pas si c'est possible ou alors autre façon

Bonjour le forum,

Dans le fichier joint j'ai 2 lignes avec des formats différents.

La 1ère => Format => Cellule => Texte avec des pointillé.

La 2ème Format => Cellule => Personnalisé sans pointillés avec Format => Cellule => ;;;@*-> ce qui est très pratique pour faire "buter" la flèche sur les cellules adjacentes lorsqu'on modifie la largeur des colonnes ou du texte, sinon il faut à chaque fois ajuster les pointillés.

Mais le problème c'est lorsque je veux "passer" en rouge certains mots NÉGATIF et [u]31 DÉCEMBRE 2017 [u] par exemple c'est impossible.

Quelqu'un aurait-il une solution ou autre façon de faire?

Merci d'avance.

Bien cordialement

Bonjour,

Le format personnalisé supprime la mise en forme du texte. Il te faut en supprimer un des deux, soit la couleur soit les pointillés ! Sinon, tu appliques le format personnalisé ";;;@*->" dans les cellules de la colonne B puis tu saisis un - (tiret), ton texte devant être dans la cellule A. Un exemple de code pour une mise en couleur automatique, c'est une procédure événementielle à mettre dans le module de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Pos As Integer

    If Target.Column > 1 Then Exit Sub

    Target.Characters(1, Len(Target.Value)).Font.ColorIndex = 0

    Pos = InStr(Target.Value, "NÉGATIF")

    If Pos <> 0 Then

        Target.Characters(Pos, Len("NÉGATIF")).Font.ColorIndex = 3
        Target.Characters(InStr(Target.Value, "31"), 16).Font.ColorIndex = 3

    End If

End Sub

Bonjour Theze,

Super mais les macros et moi!!!

Peux-tu STP faire mettre aussi 31 DÉCEMBRE 2017 en rouge.

Merci d'avance à toi

Bien cordialement

Bonjour,

Cette ligne de code met en rouge tous ce qui est à partir du nombre 31 et sur 16 caractères :

Target.Characters(InStr(Target.Value, "31"), 16).Font.ColorIndex = 3

Donc, 31 DÉCEMBRE 2017 doit aussi être en rouge de même que 31 DÉCEMBRE 2018, 31 DÉCEMBRE 2019, etc... A condition que le mot NÉGATIF soit dans la cellule !

Avec "SOLDE POSITIF AU 31 DÉCEMBRE 2017" rien ne sera en rouge.

Avec "SOLDE NÉGATIF AU 31 DÉCEMBRE 2017" NÉGATIF sera en rouge ainsi que 31 DÉCEMBRE 2017.

Pour tester, tu appuis sur Alt+F11, tu double-cliques dans la petite fenêtre en haut à gauche sur "Feuil13(Charges 2018)" et dans la fenêtre qui vient d'apparaître, tu colles le code puis tu retourne dans Excel et tu testes en changeant NÉGATIF par POSITIF et ensuite le contraire.

Bonjour Theze

Je vais regarder ça tranquillement.

Merci à toi et bonne journée

HS: J'ai des Formats personnalisés qui trainent (et ils sont nombreux) lorsque je clique dessus et fait Supp ça met le message suivant:

PJ => message

message

Le message est explicite, ta feuille est protégée !

Non justement c'est bien l le problème.

Bonjour

Merci de bien vouloir editer le titre de votre sujet dans le premier post afin qu'il corresponde un minimum à votre demande.

Au besoin pouvez-vous lire ces quelques lignes et surtout le point 3 --> A lire avant de poster

Merci de votre collaboration

Cordialement

Bonsoir Theze

Un grand merci tout fonctionne parfaitement

Bonne fin de soirée

Bien cordialement

Bonjour Theze,

Tu as mis ça pour l'exemple ci-dessus et ça fonctionne super.

Target.Characters(InStr(Target.Value, "31"), 16).Font.ColorIndex = 3

Maintenant j'ai celui ci-dessous avec VARIABLE en rouge

Montant mensuel VARIABLE à Payer

Peux-tu STP me faire la même chose et surtout me l'expliquer?

Ou un autre "spécialiste"

Je l'ai fait avec ta formule ça fonctionne mais ce n'est pas normal je pense

Merci d'avance

Bien cordialement

Ajout Fichier toto.xls

4toto.zip (15.41 Ko)

Bonjour Theze,

Tu as mis ça pour l'exemple ci-dessus et ça fonctionne super.

Target.Characters(InStr(Target.Value, "31"), 16).Font.ColorIndex = 3

Maintenant j'ai celui ci-dessous avec VARIABLE en rouge

Montant mensuel VARIABLE à Payer

Peux-tu STP me faire la même chose et surtout me l'expliquer?

Ou un autre "spécialiste"

Je l'ai fait avec ta formule ça fonctionne mais ce n'est pas normal je pense

Merci d'avance

Bien cordialement

Bonjour,

Je te re-poste le code avec l'ajout :

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Pos As Integer

    If Target.Column > 1 Then Exit Sub

    Target.Characters(1, Len(Target.Value)).Font.ColorIndex = 0

    Pos = InStr(Target.Value, "NÉGATIF")

    If Pos <> 0 Then

        Target.Characters(Pos, Len("NÉGATIF")).Font.ColorIndex = 3
        Target.Characters(InStr(Target.Value, "31"), 16).Font.ColorIndex = 3
        Target.Characters(Pos, Len("VARIABLE")).Font.ColorIndex = 3

    End If

    'recherche dans la cellule le mot VARIABLE...
    Pos = InStr(Target.Value, "VARIABLE")

    'si trouvé (la variable Pos a une valeur supérieure à 0)...
    If Pos <> 0 Then

        'la propriété "Characters" attend deux arguments,
        'le 1er est la position du 1er caractère et le second le nombre de caractères
        'la fonction Len() retourne le nombre de caractères de la chaîne passée en argument
        Target.Characters(Pos, Len("VARIABLE")).Font.ColorIndex = 3

    End If

End Sub

Bonsoir Theze,

C'est bien à quoi je pensais mais il vaut mieux un avis d'un "spécialiste".

Encore merci et excuse mon ignorance (les macros et moi!!!)

Bonne fin de soirée

Bien cordialement

Rechercher des sujets similaires à "sais pas possible facon"