Word VBA contrôle du chapitrage
jymad
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
jymad Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
jymad Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je cherche à contrôler le chapitrage d'un document word par rapport à un chapitrage standard. pour ce
faire je fais une macro word qui ouvre chaque document à la suite, definit un "range" de tout le
document et traite en boucle les chapitres trouvés par la fonction .GoTo(What:=wdGoToHeading,
Which:=wdGoToNext).
cela fonctionne bien sauf dans le cas ou le titre se trouve dans une cellule de tableau : cela fait
boucler la macro ! quelqu'un a une idée
un extract du code ci dessous :
Set Doctot = ActiveDocument.Content
With Doctot.Find
.ClearFormatting
.Wrap = Word.WdFindWrap.wdFindStop
.Style = wdStyleHeading1
If .Execute(FindText:="fiabilisation", Forward:=True, Wrap:=Word.WdFindWrap.wdFindStop, _
Format:=True) = True Then
'Affecter à TitreN le titre suivant (1ere lecture)
Doctot.SetRange Start:=Doctot.Start, _
End:=ActiveDocument.Content.End
TitreN = Doctot.GoTo(What:=wdGoToHeading, Which:=wdGoToNext).Paragraphs(1)
'définir la plage à partir de ce titreN (1ere lecture)
Doctot.SetRange Start:=TitreN.Paragraphs(1).Range.Start, _
End:=ActiveDocument.Content.End
Do While (TitreN.Style <> ActiveDocument.Styles(wdStyleHeading1) And cpt < 200)
'Traitement controle du sous chapitre trouvé
...
cpt = cpt + 1
TitreN = Doctot.GoTo(What:=wdGoToHeading, Which:=wdGoToNext).Paragraphs(1)
Doctot.SetRange Start:=TitreN.Paragraphs(1).Range.Start, _
End:=ActiveDocument.Content.End
Loop
je cherche à contrôler le chapitrage d'un document word par rapport à un chapitrage standard. pour ce
faire je fais une macro word qui ouvre chaque document à la suite, definit un "range" de tout le
document et traite en boucle les chapitres trouvés par la fonction .GoTo(What:=wdGoToHeading,
Which:=wdGoToNext).
cela fonctionne bien sauf dans le cas ou le titre se trouve dans une cellule de tableau : cela fait
boucler la macro ! quelqu'un a une idée
un extract du code ci dessous :
Set Doctot = ActiveDocument.Content
With Doctot.Find
.ClearFormatting
.Wrap = Word.WdFindWrap.wdFindStop
.Style = wdStyleHeading1
If .Execute(FindText:="fiabilisation", Forward:=True, Wrap:=Word.WdFindWrap.wdFindStop, _
Format:=True) = True Then
'Affecter à TitreN le titre suivant (1ere lecture)
Doctot.SetRange Start:=Doctot.Start, _
End:=ActiveDocument.Content.End
TitreN = Doctot.GoTo(What:=wdGoToHeading, Which:=wdGoToNext).Paragraphs(1)
'définir la plage à partir de ce titreN (1ere lecture)
Doctot.SetRange Start:=TitreN.Paragraphs(1).Range.Start, _
End:=ActiveDocument.Content.End
Do While (TitreN.Style <> ActiveDocument.Styles(wdStyleHeading1) And cpt < 200)
'Traitement controle du sous chapitre trouvé
...
cpt = cpt + 1
TitreN = Doctot.GoTo(What:=wdGoToHeading, Which:=wdGoToNext).Paragraphs(1)
Doctot.SetRange Start:=TitreN.Paragraphs(1).Range.Start, _
End:=ActiveDocument.Content.End
Loop
A voir également:
- Word VBA contrôle du chapitrage
- Word 2013 - Télécharger - Traitement de texte
- Tableau word - Guide
- Espace insécable word - Guide
- Word et excel gratuit - Guide
- Supprimer une page word - Guide
1 réponse
Bonjour à tous,
y sont nombreux en vacances , le sujet n'inspire pas ou la demande est mal formulée !
j'ai trouvé un bypass :
le bypass que j'ai trouvé pour l'instant est d'ouvrir le document en lecture seule + le fermer sans sauvegarder (ceinture + bretelles ) et de modifier le style du titre traité pour le remettre en normal avant le goto(next). cela marche, mais c'est pas satisfaisant pour l'esprit...
mais utiliser word doit-il satisfaire l'esprit ?? ;-)
y sont nombreux en vacances , le sujet n'inspire pas ou la demande est mal formulée !
j'ai trouvé un bypass :
le bypass que j'ai trouvé pour l'instant est d'ouvrir le document en lecture seule + le fermer sans sauvegarder (ceinture + bretelles ) et de modifier le style du titre traité pour le remettre en normal avant le goto(next). cela marche, mais c'est pas satisfaisant pour l'esprit...
mais utiliser word doit-il satisfaire l'esprit ?? ;-)