Si cellule contient mot MeF que sur mot

Bonjour,

Je voulais savoir si il est possible de faire une mise en forme conditionnelle (ou par format cellule) que sur un mot.

Je m'explique:

si la cellule A1 contient "4°C" (avec du texte avant et après) ne colorier et souligner que "4°C" et non tout le texte.

en sachant que dans la cellule A1 c'est une formule.

ex: =SI(OU($B$1="ZZZ",$G$3="Inactif"),"",SI($R$1="français",SI(OU(ESTVIDE('propriétés tests'!$J$3),'propriétés tests'!$J$3=" "),"AUCUNE",

'propriétés tests'!$J$3),SI(OU(ESTVIDE('propriétés tests'!$K$3),'propriétés tests'!$K$3=" "),"NONE",'propriétés tests'!$K$3)))

ici le le texte est repris via 'propriétés tests'!$J$3.

merci d'avance pour votre aide.

Bonjour,

Nouveau aussi j'ai essayé de te trouver un début de réponse.

Tu trouveras un fichier joint en espérant que cela tend vers ce que tu cherche.

Pour résoudre ton problème je suis passé par une macro et je m'excuse déjà auprès des pro lol qui diront "Bouh enlèves les Select!!" (je débute)

Tu vera que la colonne "A" de l'exemple est une formule et que les colonnes après sont pleines et bien sûr, le code est à adapter.

Sub MeF()

Worksheets("Feuil1").Select

Application.ScreenUpdating = False

Set Plage = Range("A6:A24")

For Each x In Plage

x.Select

If x = "4°C" Then Selection.Font.ColorIndex = 18

Next x

End Sub

Cdlt

Tal

96test4-c.xlsm (15.83 Ko)

Bonjour à vous,

Pas grave Thal, on a tous débuté mais effectivement, c'est une piste!

Et surtout, pense à utiliser les balises pour mettre en forme le code quand tu écris ton poste!

Par contre, je ne pense pas que ton

If x = "4°C"

fonctionne...

Je m'explique : en VBA, la manipulation de texte, c'est pas la fête, il y a des fonctions qui trouve la position des caractères et d'autres qui remplacent le texte, mais rien de beaucoup plus magique...

Donc il faut fouiner de côté là, mais moi le doute que j'ai, c'est comment appliqué cette mise en forme juste sur une partie du mot, est-ce que l'enregistreur de macro fait ça?

Et aussi est-ce que le fait que ça soit une formule laisse bien manipuler le résultat comme un texte, ça ça sera à voir avec les fonctions....

Je repasserait plus tard pour voir si vous avez trouver comment faire (j'ai du taff aussi!)

Salut ReuK,

Effectivement j'ai loupé une partie de la demande...

Sinon j'ai une première correction à apporter suivant le fait qu'il y ai des caractères avant/après la chaine 4°C recherchée :

Sub MeF2()

Worksheets("Feuil1").Select

Application.ScreenUpdating = False

Set Plage = Range("A6:A24")

For Each x In Plage

x.Select

If x.Value Like "*4°C*" Then

Selection.Font.ColorIndex = 18

End If

Next x

End Sub

Là, même si "4°C" est au milieu d'une phrase ça passe. Par contre ce sont tous les caractères de la phrase qui changent de couleur.

Pas encore trouvé l'astuce qui permet d'affecter une mise en forme qu'à la chaine recherché.

Bref en espérant que cela fasse avancer les choses (fichier lis à jour joint).

Cdlt,

Tal

PS : pour les balises je ne connais pas lol

66test4-c.xlsm (17.02 Ko)
Sub MeF2()

Worksheets("Feuil1").Select  'inutile (très probablement! de toute façons, un Activate devrait suffire pour bien préciser sur quel feuille tu veux travailler)
Application.ScreenUpdating = False 'voir commentaire plus bas

Set Plage = Range("A6:A24")
For Each x In Plage
x.Select  'inutile (vraiment! enfin pour utiliser la suite du code, on mettra un activate)
If x.Value Like "*4°C*" Then 'pour utiliser le MeF d'une partie de la cellule, il faudra trouver les "coordonnées" du texte à changer

'On cherchera donc ça ici, avec les fonctions de textes dont je vous ai parlé plus tôt
Selection.Font.ColorIndex = 18
'On met la MeF ici et zou le tour est joué! (à vérifier!)

End If

Next x
Application.ScreenUpdating = True 'Si tu l'arrêtes, il faut le relancer! En général, je le met direct après les Sub et avant End Sub!
End Sub

De mon côté avec l'enregistreur de macro (quel bel outil!) j'ai sorti ça :

With ActiveCell.Characters(Start:=1, Length:=7).Font
        .Name = "Calibri"
        .FontStyle = "Regular"
        .Size = 11
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .Color = -16776961
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With

A adapter mais on se rapproche bien!

Donc pas de Select (honnêtement je m'en sers vraiment quasiment jamais... sauf dans les sous programmes ou tu travailles sur une sélection pour le réutiliser plusieurs fois!), un simple Activate dans ta boucle et ça sera pas mal je pense!

Et pour les balises "code", c'est au dessus de la fenêtre d'édition des messages; comme pour mettre en gras; changer de taille de police et autre! Et comme tu vois, c'est pratique!

Bonjour

Taliésine a écrit :

PS : pour les balises je ne connais pas lol

Elles sont ici

balise code
Taliésine a écrit :

Pas encore trouvé l'astuce qui permet d'affecter une mise en forme qu'à la chaine recherché.

Si cela peut t'aider

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'http://forum.excel-pratique.com/excel/certains-mot-change-de-couleur-automatiquement-t21465.html?sid=0489d617b01d63b170d3bf94d93c4bad
If Target.Count > 1 Then Exit Sub
If LCase(Target.Value) Like "*lemot*" Then
    With Target.Characters(InStr(Target, "lemot"), 5).Font
        .ColorIndex = 3
        .Bold = True
    End With
End If
End Sub

Bonsoir,

Pour ma part je prends bonne note de toutes les infos de ce post (en bon débutant que je suis )

En revanche je laisse à Muriel86 le soin de valider définitivement ce post étant donné qu'elle en est l'initiatrice.

Bonne soirée à tous.

Tal

Rechercher des sujets similaires à "contient mot mef que"