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

Fermé
FVR812 Messages postés 109 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 31 mars 2024 - 7 août 2020 à 16:07
FVR812 Messages postés 109 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 31 mars 2024 - 11 août 2020 à 17:42
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.
A voir également:

4 réponses

Utilisateur anonyme
8 août 2020 à 13:51
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
FVR812 Messages postés 109 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 31 mars 2024 2
9 août 2020 à 18:53
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
Utilisateur anonyme
9 août 2020 à 19:08
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+
0
FVR812 Messages postés 109 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 31 mars 2024 2
11 août 2020 à 17:42
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