<b>Les Macros (part II - avec Word)</b>
Cas concret : vous venez de taper un joli texte dans Word. Vous voudriez le publier sur le forum.
Problème : en copiant-collant bêtement le message à partir de Word, vous devrez vous retaper toute la mise en forme : gras, italique, souligné, et même barré, s'il y en a dans votre texte.
Solution n°1 : faire la mise en forme à la main tout en se lamentant.
Solution n°2 : faire preuve de ruse
– dans Word, démarrer l'enregistrement d'une macro (Outils > Macro > Nouvelle Macro)
– appuyer sur Ctrl + F
– choisir l'onglet « Remplacer »
– cliquer sur « Plus »
– parmi les boutons qui aparaissent, cliquer sur Format > Police
– dans la boîte de dialogue qui apparaît, choisir « gras », valider avec OK
Vous devez avoir un truc du genre « Format : Police : Gras » sous l'entrée du formulaire « Rechercher »
– dans l'entrée de formulaire « Remplacer », tapez : “{b}^&{/b}” (avec des crochets à la place des accolades, of course)
– cliquez sur « Remplacer tout » : toutes les parties en gras sont maintenant entourées des balises qui vont bien !
– recommencez l'opération pour chaque balise nécessaire : italique, souligné, barré, couleur, etc...
– terminer l'enregistrement de la macro et profiter de ses bienfaits à volonté
La code de la macro tout cuit pour les balises b, i, u et s.
(Intermède pour ceux qui disent « ouin, je sais pas créer une macro » : Alt + F8
– entrez un nom de macro dans le champ en haut, par exemple Word2BBCode, puis cliquez sur « Créer »
– entre « Sub Word2BBCode() » et « End Sub », collez le texte suivant :
Code :
Selection.Find.ClearFormatting
Selection.Find.Font.Bold = True
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = "[b]^&[/b]"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Font.Italic = True
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = "[i]^&[/i]"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Font.Underline = wdUnderlineSingle
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = "[u]^&[/u]"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
With Selection.Find.Font
.StrikeThrough = True
.DoubleStrikeThrough = False
End With
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = "[s]^&[/s]"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Voilà, vous êtes presque un surhomme.
---