La version 1 de terminator a la particularité d'être dangereuse car elle ne nous demande pas si l'on veut procéder effectivement à l'élimination des caractères.
Pour créer une version plus sûre de notre programme qui préviendrait d'erreurs de manipulation de la part de l'opérateur, nous allons insérer du code pour que la macro demande l'avis de l'utilisateur avant de procéder à l'éradication des caractères non voulus.
Voici le code de terminator2.
Les lignes coloriées correspondent aux lignes qui ont été soit modifiées, soit ajoutées.
Sub terminator2() ' terminator Macro ' tue espace reponse = MsgBox("Voulez-vous vraiement lancer le terminator ?", vbYesNo,"Avertissement") If (reponse = vbYes) Then Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = " " .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^#" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll end if End Sub
A la ligne 1, on a donné le nom terminator2 à cette macro.
Aux lignes 4-5 : la macro affiche le message "Voulez-vous vraiment lancer le terminator?" en affichant "Oui" ou "Non" comme possibilité de réponse.
SI l'utilisateur choisit la réponse "Oui", la variable reponse prendra la valeur vbYes. Si l'utilisateur choisit la réponse "Non", la variable reponse prendra la valeur vbNo.
Note : SI cette macro s'exécute dans un sytème anglais, le message affiché sera toujours en français. Par contre, les choix de réponses seront "Yes" et "No". Et quelque soit le système de langue, la variable réponse ser soit vbYes soit vbNo.
On vient en quelque sorte d'ajouter une instruction conditionnelle qui permet d'exécuter du code sous certaines conditions.
reponse = MsgBox("Voulez-vous vraiement lancer le terminator ?", vbYesNo, "Avertissement") If (reponse = vbYes) Then End if
Au final, nous obtiendrons la macro suivante :