Macro pour extraire et lister les références dans les parenthèses.

Forum Microsoft Office Word

Modérateur : Argitxu

Macro pour extraire et lister les références dans les parenthèses.

Publicité
 

jawa123
Posteur débutant
Posteur débutant
Messages : 7
Enregistré le : 29 avr. 2017, 21:38

Macro pour extraire et lister les références dans les parenthèses.

Message non lu par jawa123 » 10 nov. 2018, 13:32

Bonjour,

J’ai trouvé une macro similaire sur Faqword, écrite par m@rina, pour mettre des termes en surbrillance entre [ ] comme suit :


Sub MaMacro()
'Créée par Souriane - Novembre 2011

'Recherche s'il y a un "["
Do
Selection.Find.ClearFormatting
With Selection.Find
.Text = "["
.MatchWildcards = False
End With
Selection.Find.Execute


If Selection.Find.Found = False Then
'Si "[" n'est pas trouvé, alors il ne se passe rien

'Mais si un "[" est trouvé, il se passe ceci:
Else

'Le "[" est désélectionné
Selection.MoveRight Unit:=wdCharacter, Count:=1
'Le mode "sélection" est activé et se rend jusqu'au premier "]" rencontré
Selection.Extend
Selection.Extend Character:="]"
'Il désélectionne le ]
Selection.MoveLeft Unit:=wdCharacter, Count:=1


En ce qui me concerne, je souhaiterais que les références situées dans toutes les parenthèses ( ), dans un long document, soient extraites et listées dans un autre document.

Exemples de références mises entre parenthèse : (Arctostaphylos 2 : 14-17) ; (Aesculus 3 : 2-5) ; (Carpinus 1 : 27-28), etc.

Extraire les termes et références, comme suit :

Aesculus 3 : 2-5
Arctostaphylos 2 : 14-17
Carpinus 1 : 27-28


J’ai trouvé également une autre macro écrite par m@rina pour créer un nouveau document :

'On crée le nouveau doc et on y insère les textes trouvés
Set ND = Documents.Add
Selection.TypeText Text:=Liste
End Sub


Mais je ne trouve la procédure entre les deux macros pour exécuter ce que je recherche.

Je vous remercie d’avance infiniment s’il est possible de réaliser une macro capable de faire ce travail.

Avatar du membre
m@rina
Administrateur
Administrateur
Messages : 1242
Enregistré le : 14 août 2009, 08:51
Contact :

Re: Macro pour extraire et lister les références dans les parenthèses.

Message non lu par m@rina » 12 nov. 2018, 01:13

Bonjour et bienvenue sur les faqword

J'ai effectivement des exemples de ce type sur le site. Voici la macro adaptée à ton souci :

Code : Tout sélectionner

Sub parentheses()
'macro écrite par m@rina
Dim texte As String, Liste As String, ND As Document

Application.ScreenUpdating = False
Selection.HomeKey Unit:=wdStory
'Recherche de tous les mots en majuscules
    Do
        Selection.Find.ClearFormatting
        With Selection.Find
            .ClearFormatting
            .Text = "\(*\)"
            .Forward = True
            .Wrap = wdFindStop
            .MatchCase = True
            .MatchWildcards = True
            .Execute
        End With
       
    If Selection.Find.Found Then
        texte = ActiveDocument.Range(Selection.Range.Start + 1, Selection.Range.End - 1)
            If InStr(Liste, texte) = 0 Then
                Liste = Liste & texte & vbCr
            End If
        End If
    Loop Until Not Selection.Find.Found

'On crée le nouveau doc et on y insère les textes trouvés
    Set ND = Documents.Add
    Selection.TypeText Text:=Liste
    
End Sub
m@rina

jawa123
Posteur débutant
Posteur débutant
Messages : 7
Enregistré le : 29 avr. 2017, 21:38

Re: Macro pour extraire et lister les références dans les parenthèses.

Message non lu par jawa123 » 12 nov. 2018, 11:57

Bonjour,

Fantastique ! ça marche à merveille !

J'ai longtemps cherché à faire cette macro, mais je me rend compte qu'il faut s'accorder beaucoup de temps et de patience pour apprendre le langage VBA, ce qui est pour moi un luxe mais pas impossible.
Sur le Net, je n'ai pas trouvé de cours VBA qui donne une explication au pas à pas. Je suppose donc qu'il faut suivre une formation ou bien acheter des livres. Mais là aussi, il faut savoir choisir les bons livres.

Répondre