Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/11/2011, 13h54   #1
Membre actif
 
Homme Sébastien
Consultant fonctionnel
Inscription : septembre 2009
Messages : 105
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 30
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant fonctionnel

Informations forums :
Inscription : septembre 2009
Messages : 105
Points : 199
Points : 199
Par défaut Récupérer le titre parent d'un paragraphe

Bonjour,

Je cherche à retrouver, à partir d'un texte ou d'un paragraphe, le titre parent.
Or, je ne trouve aucune info en VBA pour le faire, alors que cela a l'air possible avec les champs "RéfStyle".

J'ai cherché sur le forum une info à ce sujet, mais mes recherches n'ont pas abouti.

Dans l'idée, je voudrais, à partir d'un texte de ce type:
Citation:
1. Introduction
Ceci est une introduction.
1.1. Objet
L'objet du document
1.2. Objectifs
Les objectifs du document
pouvoir dire que le texte "Les objectifs du document" a pour titre 2 "Objectifs" et pour titre 1 "Introduction" et que le texte "Ceci est une introduction" a pour titre 1 "Introduction".

Pensez-vous que cela soit possible? Quelle piste faudrait-il creuser?

D'avance, merci.
TiJean2910 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/03/2012, 09h34   #2
Membre actif
 
Homme Sébastien
Consultant fonctionnel
Inscription : septembre 2009
Messages : 105
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 30
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant fonctionnel

Informations forums :
Inscription : septembre 2009
Messages : 105
Points : 199
Points : 199
Bonjour,

J'ai trouvé une bonne piste pour permettre de récupérer le titre parent. Ce script permet de récupérer le premier titre trouvé au-dessus du texte sélectionné:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
j = 50
i = 1
Do
    If Selection.Information(wdWithInTable) = True Then
        Selection.Tables(1).Select
        Selection.Previous(Unit:=wdParagraph, Count:=1).Select
        If Not Selection.Style Is Nothing Then
            If InStr(Selection.Style, "Titre") > 0 Then
                Set titreTemp = Selection
                MsgBox titreTemp '.Range
                'Exit For
            End If
        End If
        i = 0
    ElseIf Selection.Previous(Unit:=wdParagraph, Count:=i).Information(wdWithInTable) = True Then
        Selection.Previous(Unit:=wdParagraph, Count:=i).Tables(1).Select
        Selection.Previous(Unit:=wdParagraph, Count:=1).Select
        If Not Selection.Style Is Nothing Then
            If InStr(Selection.Style, "Titre") > 0 Then
                Set titreTemp = Selection
                MsgBox titreTemp '.Range
                'Exit For
            End If
        End If
        i = 0
    Else
        If Not Selection.Previous(Unit:=wdParagraph, Count:=i).Style Is Nothing Then
            If InStr(Selection.Previous(Unit:=wdParagraph, Count:=i).Style, "Titre") > 0 Then
                Set titreTemp = Selection.Previous(Unit:=wdParagraph, Count:=i)
                MsgBox titreTemp '.Range
                Exit Do
 
            End If
        End If
    End If
    i = i + 1
Loop Until i = j
Comme j'ai énormément de tableaux dans mes documents, plutôt que de déplacer le curseur de cellule en cellule, le script va sélectionner le tableau entier et passer au paragraphe précédent.

Le script remonte jusqu'à 50 paragraphes en arrière.

En espérant que cela pourra aider quelqu'un (un jour),
Cdt
TiJean2910 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h15.


 
 
 
 
Partenaires

Hébergement Web