Mettre gras rouge des mots précis dans toutes les cellules de la feuille

Fermé
FVR812 Messages postés 109 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 31 mars 2024 - 31 oct. 2021 à 12:07
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 1 nov. 2021 à 08:32
Bonjour, Je range des portions de textes dans des cellules selon des thèmes de recherche perso (plus facile que dans word). Je veux faire apparaître dans toutes les cellules de la feuille des mots spécifiques. Ici pour les mots : loi, formule, macro, genre, sex, femme, fille, latrine, hygiène, mariage
j'ai récupéré cette macro lors d'un précédent échange, elle n'a jamais marché. Elle bloque au début à sub (pas à pas > surligné en jaune).
Ma question : est-elle correcte ? Que faut-il y modifier sinon ? Merci de e que vous pouvez faire


Option Explicit
Option Compare Text


Sub MotEnGras(LeMot As String, Plage As Range)
Application.ScreenUpdating = False

'myDearFriend! - www.mdf-xlpages.com
Dim Cel As Range
Dim AdrDeb As String, t As String
Dim Pos As Integer
With Plage
Set Cel = .Find(LeMot, LookAt:=xlPart)
If Not Cel Is Nothing Then
AdrDeb = Cel.Address
Do
t = Cel.Text
Do
Pos = InStr(Pos + 1, t, LeMot)
If Pos > 0 Then
With Cel.Characters(Start:=Pos, Length:=Len(LeMot)).Font
.FontStyle = "Gras"
.ColorIndex = 4 '3 = rouge 4 = vert
End With
End If
Loop Until Pos = 0
Set Cel = .FindNext(Cel)
Loop While Not Cel Is Nothing And AdrDeb <> Cel.Address
End If
End With
End Sub

Sub Solution1()
With Feuil1
MotEnGras "loi", .Range("A1:CZ2000")
MotEnGras "format", .Range("A1:CZ2000")
MotEnGras "cellule", .Range("A1:CZ2000")
MotEnGras "macro", .Range("A1:CZ2000")
MotEnGras "genre", .Range("A1:CZ2000")
MotEnGras "sex", .Range("A1:CZ2000")
MotEnGras "femme", .Range("A1:CZ2000")
MotEnGras "fille", .Range("A1:CZ2000")
MotEnGras "latrine", .Range("A1:CZ2000")
MotEnGras "hygiène", .Range("A1:CZ2000")
MotEnGras "mariage", .Range("A1:CZ2000")
End With

End Sub

Sub Solution2()
Dim Derlig&, i&
With Feuil2
Derlig = Feuil3.Cells(.Rows.Count, "B").End(xlUp).Row
For i = 1 To Derlig
MotEnGras Feuil3.Range("B" & i), .Range("A1:Z2000")
Next i
End With

End Sub


Configuration: Windows / Edge 95.0.1020.40

4 réponses

Mike-31 Messages postés 18318 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 26 avril 2024 5 081
31 oct. 2021 à 13:04
Bonjour,

Il serait plus respectueux de demander à l'auteur de ce code myDearFriend sur le forum excel-downloads d'adapter son code avant de solliciter d'autres aides
0
The_boss_68 Messages postés 927 Date d'inscription dimanche 15 novembre 2015 Statut Membre Dernière intervention 15 mai 2024 176
31 oct. 2021 à 14:30
Bonjour,

Voir si cet exemple en Pj peut vous depanner

https://www.cjoint.com/c/KJFnDTEFwej

Slts
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
31 oct. 2021 à 15:59
Bonjour,

comme ceci:

Sub Solution1()
With Feuil1
Call MotEnGras("loi", .Range("A1:CZ2000"))
Call MotEnGras("format", .Range("A1:CZ2000"))
'etc
End With
End Sub


0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 302
Modifié le 1 nov. 2021 à 08:38
bonjour tt le monde

apparemment la variable "t" n'est pas déclarée dans la sub moten gras....

0