EXCEL : Modifier le format de police d'un mot seulement dans une feuille

FVR812 Messages postés 126 Statut Membre -  
FVR812 Messages postés 126 Statut Membre -
Bonjour, (WINDOWS 10 EXCEL 2019) je veux que certains mots dans plusieurs cellules d’une feuille EXCEL apparaissent en gras et d’une couleur particulière. Ça se fait facilement sur WORD. Dans EXCEL je fais : rechercher monmot / option /dans la feuille/remplacer par/ format police (gras, couleur) /Remplacer tout, et là … ce sont les textes complets des cellules contenant monmot qui se retrouvent en gras avec ma couleur choisie.
Comment faire pour que ce ne soit que monmot seul qui apparaisse avec le format choisi ? Il paraît que ça peut se faire avec « correction automatique » mais où trouver « correction automatique » dans EXCEL 219 ? merci de vos solutions. Cordialement.

4 réponses

  1. Utilisateur anonyme
     
    Bonjour
    A part manuellement dans la barre de saisie, à ma connaissance, seule une macro VBA peut changer le format d'un mot ou chaine de caractère dans le contenu d'une cellule.
    Avec par exemple cette macro VBA (pas de moi !!, merci myDearFriend!)

    Ouvrir le module Macro (Alt + F11)
    Double click sur la Feuille, puis coller dans la partie droite et Enregistrer.

    Option Explicit

    Sub Traitement()
    'myDearFriend! - www.mdf-xlpages.com
    Dim Plage As Range, Cel As Range
    Dim LeMot As String, AdrDeb As String

    ' --------------------------------------------
    'A adapter en fonction du mot voulu Et de la Plage voulue
    Set Plage = Sheets("Feuil1").Range("A1:Z2000")
    LeMot = "Dupont"
    ' --------------------------------------------

    With Plage
    Set Cel = .Find(LeMot, LookAt:=xlPart)
    If Not Cel Is Nothing Then
    AdrDeb = Cel.Address
    Do
    Modif Cel, LeMot
    Set Cel = .FindNext(Cel)
    Loop While Not Cel Is Nothing And AdrDeb <> Cel.Address
    End If
    End With
    End Sub

    Private Sub Modif(ByRef Cel As Range, LeMot)
    Dim T As String
    Dim Pos As Integer
    T = Cel.Text
    Do
    'Respecte la casse Majuscule/Minuscule -------
    Pos = InStr(Pos + 1, T, LeMot)
    ' Ne tient pas compte des Majuscule/Minuscule-
    ' Pos = InStr(Pos + 1, T, LeMot[B], vbTextCompare[/B])
    ' --------------------------------------------
    If Pos > 0 Then
    With Cel.Characters(Start:=Pos, Length:=Len(LeMot)).Font
    .FontStyle = "Gras"
    .ColorIndex = 3 'rouge
    End With
    End If
    Loop Until Pos = 0
    End Sub


    Bien enregistrer en Classeur avec macro (xlsm).
    A+
    1
  2. FVR812 Messages postés 126 Statut Membre 2
     
    Merci, ça a marché une fois, mon mot est "Préambule" et je l'ai voulu en gras noir, et tous dasn la feuille ont été modifiés ainsi, mais à l'enregistrement il me refuse l'enregistrement en xlsm et débogage :
    Sub Préambulegrasnoir()
    '
    ' Préambulegrasnoir Macro
    '

    '
    Application.CutCopyMode = False
    Range("T3").Select
    ActiveCell.FormulaR1C1 = "Préambule"
    Range("T13").Select
    ActiveCell.FormulaR1C1 = "préambule"
    ActiveWindow.SmallScroll Down:=-20
    Application.Run _
    "'Tableau répertoire articles TO thèmes.xlsm'!Préambulegrasnoir"
    ActiveWindow.SmallScroll Down:=-8
    Application.Run _
    "'Tableau répertoire articles TO thèmes.xlsm'!Feuil1.Traitement"
    Application.Run _
    "'Tableau répertoire articles TO thèmes.xlsm'!Feuil1.Traitement"
    Range("S9").Select
    ActiveWindow.SmallScroll Down:=-20
    Range("R13").Select
    ActiveWindow.SmallScroll Down:=-48
    End Sub

    Impossible ensuite de relancer la macro. Tu y vois une solution ? Merci.
    0
  3. Utilisateur anonyme
     
    Bonjour
    Ah OK !
    Alors ne pas coller la macro initiale dans la feuille, mais insérer avec le bouton de droite un "Module" et coller la macro dans le module.
    Dans la feuille, Il faut alors lancer la macro à chaque fois par "Afficher Macro" et éventuellement lui attribuer un raccourcis avec le bouton "Options"
    A+
    1
  4. FVR812 Messages postés 126 Statut Membre 2
     
    Merci, comme je t'ai dit ça marche une fois puis impossible d'enregistrer le fichier EXCEL sous format prenant en charge les macro (un tas de message d'impossibilité) et apparait en plus en surbrillance la 1° ligne sub PreambuleGrasNoir ().
    Je suis novice en VBA et macro, je trouve "afficher macro" et c'est tout, alors heu quand tu me dis bouton de droite...
    Si tu veux bien y voir clair me dire ce qui coince, je te mets la macro en entier :

    Sub PreambuleGrasNoir()

    Dim Plage As Range, Cel As Range
    Dim LeMot As String, AdrDeb As String

    ' --------------------------------------------
    'A adapter en fonction du mot voulu Et de la Plage voulue
    Set Plage = Sheets("Feuil1").Range("A1:Z2000")
    LeMot = "Préambule"
    ' --------------------------------------------

    With Plage
    Set Cel = .Find(LeMot, LookAt:=xlPart)
    If Not Cel Is Nothing Then
    AdrDeb = Cel.Address
    Do
    Modif Cel, LeMot
    Set Cel = .FindNext(Cel)
    Loop While Not Cel Is Nothing And AdrDeb <> Cel.Address
    End If
    End With
    End Sub

    Private Sub Modif(ByRef Cel As Range, LeMot)
    Dim T As String
    Dim Pos As Integer
    T = Cel.Text
    Do
    'Respecte la casse Majuscule/Minuscule -------
    Pos = InStr(Pos + 1, T, LeMot)
    ' Ne tient pas compte des Majuscule/Minuscule-
    ' Pos = InStr(Pos + 1, T, LeMot[B], vbTextCompare[/B])
    ' --------------------------------------------
    If Pos > 0 Then
    With Cel.Characters(Start:=Pos, Length:=Len(LeMot)).Font
    .FontStyle = "Gras"
    .ColorIndex = 1 'NOIR
    End With
    End If
    Loop Until Pos = 0
    End Sub
    0