Outils Les bricolages de Heffgé

Quelques macros pour Word

Les macros proposées ici sont des scripts utilisant le langage VBA (Visual Basic Application) inclus dans Word à partir de la version Word 97 (98 pour les Mac). Elles ne peuvent donc pas être utilisées sous Word 6 ou des versions antérieures.

Ces scripts sont si courts qu'il n'a pas été prévu de téléchargement. Il suffit de faire un copier/coller du texte vers la destination de son choix.

Saut de ligne et marque de paragraphe

Il est bien exaspérant de devoir remplacer les sauts de ligne par des marques de paragraphe chaque fois qu'on insère un texte copié sur une page de la toile dans un document Word justifié. La manœuvre est simple mais il faut néanmoins connaître toutes les subtilités du Rechercher - Remplacer pour parvenir à ses fins. Elle devient vite fastidieuse quand il faut la répéter souvent ou, au contraire, on la pratique si peu souvent qu'on l'oublie d'une fois sur l'autre.

Le remède passe par la création d'une macro. On pourrait se contenter de passer par l'enregistreur automatique de macros mais Word a tendance à générer une pleine page de code VBA quand le script pourrait tenir en deux lignes.

Voici donc un script minimum pour réaliser automatiquement ce remplacement.

Sub paragraphes()
  Selection.WholeStory
  With Selection.Find
    .Text = "^l"
    .Replacement.Text = "^p"
  End With
  Selection.Find.Execute Replace:=wdReplaceAll
  Selection.HomeKey
End Sub

Pour plus de commodité la macro pourra être affectée à un bouton de la barre d'outils réalisé à l'aide de l'éditeur de boutons.

Suppression des liens hypertexte

Après qu'on a résolu ce problème de mise en forme on peut vouloir supprimer tous les liens hypertexte quand leur présence ne s'impose pas. Cette opération est encore plus fastidieuse que la précédente car on est obligé de les supprimer un par un.

Elle pourra toutefois être réalisée en un seul clic grace à la macro dont voici le script :

Sub sup_liens()
  Do While ActiveDocument.Hyperlinks.Count <> 0
  ActiveDocument.Hyperlinks(1).Delete
  Loop
End Sub

Liste des liens hypertexte

Il peut arriver également qu'on veuille récupérer dans un document Word la liste de tous les liens hypertexte contenus dans un autre. C'est ce que fait le script ci-dessous :

Dim liste, lien, url
Dim dat As New MSForms.DataObject
Sub lst_liens()
  For Each lien In ActiveDocument.Hyperlinks
    url = lien.Address
    If InStr(lien.Address, "mailto:") = 0 Then
      liste = liste + lien.Address + vbCrLf
    End If
  Next
  If Len(liste) <> 0 Then
    dat.settext (liste)
    dat.putinclipboard
    Documents.Add.Content.Paste
  Else
    MsgBox ("Aucun lien dans ce document")
  End If
End Sub

Le document contenant la liste est crée automatiquement. Les liens de type mailto n'y sont pas inclus.

 

Toutes les pages du site Les autres sites

Accueil
comparaison de dossiers
contenu d'un dossier
conversion ASCII/ANSI
connexion/déconnexion
débrider une Livebox SAGEM ou Inventel ancien modèle
gérer un fichier à générations dans un .bat
les pilotes oubliés
nettoyage et arrêt Windows 9x
orthodromie
purge des fichiers temporaires d'Internet Explorer et du dossier Temp (Windows XP)
quelques macros pour Word

Tentatives de bonnes réponses à des questions qui peuvent ne pas l'être

 

Le DOS sied