Macro Terminator (1/3)

Voici l'échantillon ADN (modifié) d'une mouche Mathusalem

1 ggtaaacaaa tgctaaacag ctgatagcaa taacacattt tattcagcga gtttgtttct
41 ttcgatttaa actcgagttt taatgtggtt tactatttaa acgtgacaaa gtactattgt
131 taagtatgcc aaaacacggc ttaagttgtt tataaaaccg gatgctggct cataacctag
181 gtttccataa aaagcgcctt ttttcaaaca tgaaggctgt tttacaggat cggggtgtca
251 taggcttatc cctcgaagaa tgcgatttgg aaagaacttt gcttggagga cagagtttcc
301 ggtaagcgct atccatacta ataatgaaca tatgtactca aaacaacttt acatgccaga
351 tggcgatcca tatgcgatgg taatagaacg aaatatggcg gagtggtgtt caacacctac
431 tgggtgctcc agcaagaaga atccttcata acttacgagg catacggaac cagcagtcct
441 ttggccacga aggactattc ttccttgata tctgactacc tacgtgttga tttcgaccta
531 aaggtcaacc aaaaagattg gttaagcaaa gatgataact ttgtgaagtt cttgagtaag
611 cctgtgcgcc tcctttctca ggagccgttc gaaaacattt ttagcttcct ttgcagtcag
641 aacaataaca tcaagcggta ggtggttcaa tcaaatgcga atcccatcat taaatacagt
781 aaattggttt cttcttagca tatcatctat gattgaatgg ttttgcgcta catttggcac
791 caagattggt cacttcaatg gtgccgatgc gtatacattt cccacgataa atagattcca
851 cgacatccca tgcgaggatc ttaatgccca gctaagggct gccaagttcg gttatcgggc
911 caagttcata gcacaaacgc tgcaagagat ccagaaaaag gggggacaaa actggttcat
971 aagcctaaag agcatgccgt tcgaaaaagc tcgcgaggag ctgacactgc tacccggaat
1031 cggatacaaa gtggccgatt gcatctgcct tatgtcaatg ggtcacttgg agtcagtgcc
1091 cgtcgacatt catatttaca gaattgccca aaattactac ctgccacatc taaccggcca
1151 aaagaacgta accaagaaga tttacgaaga ggtctcgaaa cattttcaaa agctacacgg
1201 aaagtatgcc ggttgggctc aagctgtaag tacactgaaa gttgcaattt agtctgtgtg
1281 tttcttataa tatcattatt tcagattctc ttttctgccg atttgagtca atttcaaaat
1331 acttccacag ttgcttgtaa gaaaaaatcc aataaaaaac ctaaaaagtg atcttatcta
1341 ttggattaaa aaaaaaaata ttcctacttg taatatttga atattaaaat ataatagaaa
1451 tgtatatact aatgtatata taaatatata tctaaacaga gaaag

Créez la macro terminator1 permettant de supprimer tous les chiffres de l'échantillon ainsi que tous les espaces.

Au final, nous obtiendrons la macro suivante :

Sub terminator1()
 ' terminator1 Macro
 ' tue espace
 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 Sub

Nous venons de créer une macro. Cette macro est écrite en langage Visual Basic.
Chaque macro créée commence par l'instruction "Sub <nom de la macro> ()" (ligne 1) et se termine par l'instruction "End Sub" (ligne 35).
Les lignes 2 et 3 correspondent à des commentaires utiles pour la maintenance ultérieure.
Les lignes 4 à 34 correspondent aux instructions qui seront exécutées lorsque la macro est lancée (par l'utilisateur ou un autre programme).

Les lignes 4 à 18 correspondent à l'exécution de la recherche de tous les caractères <espaces> et de leur remplacement par une chaînevide.
Les lignes 20 à 34 correspondent à l'exécution de la recherche de tous les chiffires (^#) et de leur remplacement par une chaîne vide.

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

Voilà à quoi correspondent les lignes de codes suivantes :

  • .Text = " "
    • le texte à chercher est " " (un espace) (ligne 7 de terminator1)
  • .Replacement.Text = ""
    • le texte de remplacement est "" (une chaîne de caractères vide) (ligne 8)
  • .Forward = True
  • .Wrap = wdFindContinue
    • Avec ces 2 options, on cherche à partir de l'endroit où se trouve le curseur et on demandera à Word de repasser aussi par le
    • et on demande à Word

L'image ci-dessous montre où apparaissent les différentes options dans un dialogue de recherche/remplacement dans Word 2016 Mac.