Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche Remplacer passer du maigre au gras

14 réponses
Avatar
Le Nordiste
Bonjour,

C'est ma journ=E9e R&R :

Comment faire pour remplacer un mot ( ou expression) en maigre par le
m=EAme graiss=E9 ?
Si possible par R&R bien =E9videmment sinon autrement en automatique
bien sur.

Remerciements anticip=E9s pour votyre collaboration.

Le Nordiste

10 réponses

1 2
Avatar
Geo
Bonjour

C'est ma journée R&R :



C'est une merveille

Comment faire pour remplacer un mot ( ou expression) en maigre par le
même graissé ?
Si possible par R&R bien évidemment sinon autrement en automatique
bien sur.



Faites la recherche avec le mot en précisant dans le format la police
avec "Non gras"
Le champ de remplacement vous mettez ^& qui (de mémoire) représente la
chaîne recherchée et vous précisez dans le format : gras.

--
A+
Avatar
Le Nordiste
> C'est une merveille


Je dirais même plus : " C'est une merveille"

Ça marche !


Mais par l'enregistreur de macro je n'arrive pas initialiser mon R&R
pour remplacer par GRAS,
Il n'y a pas trace de quoi que ce soit de cet ordre.
Et je voudrais faire ça systématiquement en lançant ma macro.

Merci de ta collaboration Géo
Avatar
Geo
Bonjour

Mais par l'enregistreur de macro je n'arrive pas initialiser mon R&R
pour remplacer par GRAS,
Il n'y a pas trace de quoi que ce soit de cet ordre.
Et je voudrais faire ça systématiquement en lançant ma macro.



avec un bout de code ça aurait été plus sûr
Mais il faut ajouter qqch comme :
.Font.Bold = True
au même niveau que :
.Text = "mot à dégraisser"

--
A+
Avatar
Le Nordiste
Bonjour Géo,

J'ai insérer le     .Font.Bold = True dans mon code :

'''''''''''''''''''''''''''''''''''''''''''''''''''''''' Mon code
''''''''''''''''''''''''''''''''
With Selection.Find
.Text = strAvantRech & strSQL & strAprésRech
.Replacement.Text = strAvantRemp & strSQL & strAprésRemp
.Font.Bold = False ' pour graisser le mot
.Forward = True
.Wrap = wdFindContinue
.Format = True 'False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
'''''''''''''''''''''''''''''''''''''''''''''''''''''''' Mon code
''''''''''''''''''''''''''''''''

j'ai essayé les 4 combinaisons .Font.bold et .Format : sans succés.


Je me suis peut étre mal exprimé :

Mon texte à travailler est constitué de N requêtes SQL, que j'insér e
dans un document.

Je désire en sortie de routine que :
1) l'ensemble de mes requêtes soit indenté : ça c'est OK
( à part quelques fignolages et cas tordus à régler à la main
pour le moment.)

2) Les mots réservés (SELECT, AS, INTO, FROM, WHERE, … ) soit
facilement repérables
C'est pourquoi j'ai pensé à les graisser ou les passer en bleu ou
rouge -peu importe-



J'ai défini un signet couvrant l'ensemble des requêtes. puis ai écrit
du code VB :

1) sélectionne le signet
2) lance toute une série de R&R ( quelle merveille cet
outil !)
pour les mots réservés SQL à fin de créer une indentati on.
Recherche de l'écriture brute de la requête issu
d'Access
Remplace par l'écriture souhaitée, en jouant sur la
"ponctuation"

Il y a donc deux voies pour cela :
a) Soit il est possible de formater lors du Remplacer
b) soit de repasser aprés sur chacun des mots réservés pour
le formater.

Je ne sais faire ni l'un ni l'autre.
Je pratique plutot VB sous Excel ou Access.

Un grand merci pour le temps que tu consavre à mon problême.

Le Nordiste
Avatar
Geo
Bonjour

Décidément c'était pas mon jour
J'ai tout lu à l'envers :

Voici ce que donne l'enregistreur de macro :
Selection.Find.ClearFormatting
Selection.Find.Font.Bold = False
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Bold = False

Les lignes ClearFormatting sont nécessaires.

Je désire en sortie de routine que :
1) l'ensemble de mes requêtes soit indenté : ça c'est OK
( à part quelques fignolages et cas tordus à régler à la main
pour le moment.)



Très bien, ce n'est pas le plus simple à faire

2) Les mots réservés (SELECT, AS, INTO, FROM, WHERE, … ) soit
facilement repérables
C'est pourquoi j'ai pensé à les graisser ou les passer en bleu ou
rouge -peu importe-



Ça dépend si vous devez refaire cette opération régulièrement, mais il
y a une vieille astuce qui consiste à utiliser un logiciel qui fait ça.
Voici une requête affichée dans Foxpro et recopiée dans Word.

http://cjoint.com/?jAjaLuRRJo

Il y a donc deux voies pour cela :
a) Soit il est possible de formater lors du Remplacer
b) soit de repasser aprés sur chacun des mots réservés pour
le formater.

Je ne sais faire ni l'un ni l'autre.



Avec le début de ce message la solution a) ne devrait plus poser
problème.
Perso j'aurais plutôt fait la solution b), même si elle est moins
performante car elle permet de traiter séparément les deux problèmes.

J'avais fait une macro pour colorier le vba recopié dans Word, on
devrait pouvoir l'adapter.

--
A+
Avatar
Le Nordiste
Géo,

Mon enregistreur ne me donne rien de tout cela,
comment fais tu ?

J'ai inséré dans :

With Selection.Find
.Text = strAvantRech & strSQL & strAprésRech

.ClearFormatting '???
.Font.Bold = False '??

.Replacement.Text = strAvantRemp & strSQL & strAprésRemp

.Replacement.ClearFormatting '???
.Replacement.Font.Bold = False '???

.Font.Bold = False ' pour graisser le mot
.Forward = True
.Wrap = wdFindContinue
.Format = True 'False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

mais ça ne marche pas.
Avatar
Geo
Bonjour

Mon enregistreur ne me donne rien de tout cela,
comment fais tu ?



J'utilise les raccourcis clavier (CTRL+H) et la souris pour les menus

.ClearFormatting


Non, il faut le laisser en dehors du with

Recopiez simplement le code fourni par l'enregistreur :
Selection.Find.ClearFormatting
Selection.Find.Font.Bold = True
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Bold = False
With Selection.Find
.Text = "rty"
.Replacement.Text = "^&"
.Forward = True
.Wrap = wdFindContinue
etc

--
A+
Avatar
Le Nordiste
Géo merci pour ta patience,


Voici ma sous routine :
Sub RECHERCHE_et_REMPLACE(ByVal strSQL As String, _
ByVal strAvantRech As String, ByVal
strAprésRech As String, _
ByVal strAvantRemp As String, ByVal
strAprésRemp As String)

'?????
Selection.Find.ClearFormatting
Selection.Find.Font.Bold = False
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Bold = False

'??????
With Selection.Find
.Text = strAvantRech & strSQL & strAprésRech
.Replacement.Text = strAvantRemp & strSQL & strAprésRemp
.Font.Bold = False ' pour graisser le mot
.Forward = True
.Wrap = wdFindContinue
.Format = True 'False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.Execute Replace:=wdReplaceAll


End Sub

Et je n'obtiens pas l'effet attendu.


Pour l'enregistreur de macro je fais aussi par Ctrl+H et la souris
mais je n'ai pas les 4 lignes car je ne sais pas les obtenir par le
menu.
Avatar
Geo
Bonjour

Pour l'enregistreur de macro je fais aussi par Ctrl+H et la souris
mais je n'ai pas les 4 lignes car je ne sais pas les obtenir par le
menu.



Il faut faire CTRH + H au clavier pour ouvrir la boite de dialogue de
Rechercher/remplacer, après on clique sur ce qui va bien et finir par
le bouton "Remplacer tout" puis le X.
Voici le résultat

Sub Macro1()
'
' Macro1 Macro
'
'
Selection.Find.ClearFormatting
Selection.Find.Font.Bold = True
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Bold = False
With Selection.Find
.Text = "rty"
.Replacement.Text = "^&"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

--
A+
Avatar
Geo
Re

Sub RECHERCHE_et_REMPLACE(ByVal strSQL As String, _
ByVal strAvantRech As String, ByVal
strAprésRech As String, _
ByVal strAvantRemp As String, ByVal
strAprésRemp As String



Dim MaPlage As Range
Set MaPlage = ActiveDocument.Bookmarks("MesSQL").Range
MaPlage.Find.ClearFormatting
MaPlage.Find.Font.Bold = False
MaPlage.Find.Replacement.ClearFormatting
MaPlage.Find.Replacement.Font.Bold = False
MaPlage.Find.Replacement.Font.Color = wdColorBlue
With MaPlage.Find
.Text = strAvantRech & strSQL & strAprésRech


.Replacement.Text = "^&"

.Forward = True
.Wrap = wdFindContinue
.Format = True 'False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With


MaPlage.Find.Execute Replace:=wdReplaceAll

End Sub



Pas testé.

--
A+
1 2