Bonjour, sur EXCEL 2019 (WINDOWS 10) je veux modifier le format de police de mots seulement dans plusieurs cellules chaque fois que celui-ci apparaît comme ça se fait facilement sur WORD. Par exemple mettre seulement le mot « liberté» en gras vert chaque fois qu’il apparaît dans une cellule d'une feuille EXCEL, (et non mettre le texte de la cellule tout entier en gras vert comme me le fait EXCEL).
J’ai fouillé dans les forums, trouvé cette macro que j’ai adaptée ci-dessous. Ça marche bien une fois, j’obtiens ce que je veux, tous mes « liberté » sont en gras vert, mais impossible d’enregistrer le fichier EXCEL sous xlsm prenant en charge les macros. J’ai un tas de refus. Dommage parce que cette macro me rends de gros services.
Je suis toujours aussi nul en VBA, alors si vous pouvez me modifier cette macro pour que je puisse enregistrer normalement sous xlsm …. Merci.
Sub libertéVert()
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 = "liberté"
' --------------------------------------------
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, vbTextCompare)
' --------------------------------------------
If Pos > 0 Then
With Cel.Characters(Start:=Pos, Length:=Len(LeMot)).Font
.FontStyle = "Gras"
.ColorIndex = 4 'VERT
End With
End If
Loop Until Pos = 0
End Sub
J’ai fouillé dans les forums, trouvé cette macro que j’ai adaptée ci-dessous. Ça marche bien une fois, j’obtiens ce que je veux, tous mes « liberté » sont en gras vert, mais impossible d’enregistrer le fichier EXCEL sous xlsm prenant en charge les macros. J’ai un tas de refus. Dommage parce que cette macro me rends de gros services.
Je suis toujours aussi nul en VBA, alors si vous pouvez me modifier cette macro pour que je puisse enregistrer normalement sous xlsm …. Merci.
Sub libertéVert()
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 = "liberté"
' --------------------------------------------
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, vbTextCompare)
' --------------------------------------------
If Pos > 0 Then
With Cel.Characters(Start:=Pos, Length:=Len(LeMot)).Font
.FontStyle = "Gras"
.ColorIndex = 4 'VERT
End With
End If
Loop Until Pos = 0
End Sub