[Déplacé .NET -> VBA] Macro word : Extraction de tableaux dans un fichier word

baygonjaune - 5 oct. 2012 à 11:31
 baygonjaune - 8 oct. 2012 à 13:59
Bonjour,

Je patoge un peu beaucoup dans la réalisation d'une macro word. Voici mon besoin :

J'ai une liste de fichiers word avec une liste de tableaux dedans. Tous ces tableaux ont la chaîne "ID" dedans.

Je cherche à réaliser une macro qui pour chaque document, fais une recherche sur la chaîne "ID", puis sélectionne le tableau et copie dans un nouveau fichier word vierge le tableau sélectionné.

Avez-vous des idées de code svp ?

Par avance, merci.

Loïc

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 oct. 2012 à 11:47
Bonjour,
Une "macro Word" ne risque pas d'être du :
Forum > VB.NET et VB 2005

Une section "langages dérivés < VBA" existe
Cette discussion sera probablement déplacée par un administrateur bienveillant.
En attendant : montre donc ce que tu as au moins tenté d'écrire pour y parvenir.



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Voici mon bloubiboulga de code ... Désolé, pour les puriste ... ;-)

---------------
Sub Extracteur_Exigences()


Set doc = Documents.Open("c:\CDC_rattrapage V2.0.doc")
Set Doc1 = Documents.Add(Template:="Normal")

doc.Activate

With ActiveDocument.Content.Find
.ClearFormatting
.Text = "ID"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False

Do While .Execute(Forward:=True, Format:=True) = True

If Selection.Find.Execute = True Then

Selection.Tables(1).Select

Selection.Copy
Doc1.Activate
Selection.PasteAndFormat (wdPasteDefault)
Selection.TypeParagraph
Selection.TypeParagraph
doc.Activate

Selection.Find.ClearFormatting
Selection.MoveDown Unit:=wdScreen, Count:=1

Else

Exit Do

End If

Loop

End With


End Sub
---------------
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
8 oct. 2012 à 11:29
Salut,

pour ma part je ferai plutôt une recherche de tableau et pour chaque tableau je regarderai l'ID. Mais tu ne nous dit pas ou ce trouve cette ID !
Dans une cellule du tableau ?
Dans une chaine extérieur au tableau ?

A+
0
La chaîne "ID" est une cellule du tableau. SI je trouve la chaîne ID, alors je sélectionne tout le tableau (donc avec la cellule ID), je le copie, puis je le colle dans un document vierge. Même mode de fonctionnement pour la chaîne suivante "ID".

a+
0
Rejoignez-nous