Précédent   Forum du club des développeurs et IT Pro > Logiciels > Microsoft Office > Word
Word Forum d'entraide sur le traitement de texte Microsoft Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/12/2012, 11h17   #1
gregos93
Invité de passage
 
Homme Grégoire
Ingénieur intégration
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Grégoire
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 1
Points : 1
Par défaut Saut de numérotation dans la structure d'un document extrait d'une BDD.

Bonjour à tous,

Je suis débutant en word et le problème que je rencontre est au-delà de mes compétences et après quelques heures de recherche infructueuses, j'ai décidé de vous consulter.

Voilà mon contexte :

- j'extrait un document .doc d'une base de données grâce à un logiciel d'extraction.
- lorsque j'ouvre ce fichier je retrouve bien toutes les informations demandées mais la structure ne me convient pas. En effet j'obtiens des choses du type :
1. Chapitre 1
1.1.1 Section 1 du chapitre 1
- comme vous pouvez le constater il y a un écart de numérotation..

- j'ai consulté le fournisseur de ce logiciel mais ce dernier n'a pas de solution à me proposer en passant par le logiciel d'extraction.
- j'ai donc pensé à modifier directement le fichier .doc extrait via une macro par exemple. (j'extrais beaucoup de doc tous les jours donc je ne peux envisager de me les repalucher à la main...)

Auriez-vous des pistes ou une solution permettant de remettre en forme le document word, s'il vous plaît,

tel que

1. titre 1
1.1.1 section 1 chapitre 1
1.1.2 section 2 chapitre 1
1.1.2.1.1 partie 1 section 2 chapitre 1
1.1.2.1.2 partie 2 section 2 chapitre 1

devienne automatiquement

1. titre 1
1.1 section 1 chapitre 1
1.2 section 2 chapitre 1
1.2.1 partie 1 section 2 chapitre 1
1.2.2 partie 2 section 2 chapitre 1

Les styles de mon template sont bien définis, je pense qu'il faut juste modifier les styles de certains titres.

Merci à tous,

Gregos.
gregos93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 13h44   #2
carden752
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 1 370
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 1 370
Points : 2 372
Points : 2 372
Envoyer un message via MSN à carden752
Bonjour,

Je pense que ce serait plutôt la numérotation des styles de titre à changer.
Est-ce que tu as vérifier s'il n'est pas rappelé par exemple 2 fois le niveau précédent ou insérer à la main le groupement .1 dedans. Ca y ressemble quand même.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 14h19   #3
gregos93
Invité de passage
 
Homme Grégoire
Ingénieur intégration
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Grégoire
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 1
Points : 1
Merci pour ta réponse Carden752.

Oui j'ai vérifié tous les paramètres de titres. Tout est en règle de ce côté là.

Le problème vient de l'attribution des styles à certaines sélections.
Je pensais qu'une macro qui pourrait sélectionner un titre, regarder le titre précédent et s'il y a un écart de 2 niveaux ou plus entre les styles des deux titres alors modifier le style du titre sélectionné, pourrait faire l'affaire. Mais je n'ai pas les connaissances pour...

Merci pour votre aide.

Gregos.
gregos93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 14h29   #4
carden752
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 1 370
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 1 370
Points : 2 372
Points : 2 372
Envoyer un message via MSN à carden752
Bonjour,

Je pense que le plus simple serait d'avoir un document qui pose problème sans donner confidentielles si c'est possible.
Ce sera plus facile pour nous de créer la macro en fonction de ton paramétrage de styles.
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 15h03   #5
gregos93
Invité de passage
 
Homme Grégoire
Ingénieur intégration
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Grégoire
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 1
Points : 1
Yes ! Voilà un de mes fichiers qui me pose problème. J'ai retiré les infos confidentielles..
Fichiers attachés
Type de fichier : doc gregos93_saut de numerotation.doc (172,5 Ko, 3 affichages)
gregos93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 15h19   #6
carden752
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 1 370
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 26
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 1 370
Points : 2 372
Points : 2 372
Envoyer un message via MSN à carden752
Bonjour,

Il te faut redéfinir la hiérarchie de ton style de numérotation en fonction de ce que tu utilises. Il te faut donc mettre entre autre mettre au niveau 3. "Sect2-title" en masquant le niveau2 et au niveau 5 "Sect4-title" en masquant les niveaux 2 et 4 (non utilisés), au niveau 6 "Sect5-title" en masquant aussi les niveaux 2 et 4

OU

Il te faut redéfinir le style correspondant pour chacun de tes titres. Car tu as à priori 2 styles équivalents pour le même niveau dans ce que tu souhaites faire, c'est à dire dire que ce qui est en Sect2-title correspond à du Sect1-title. Et ce qui est du Sect4-title correspond à du Sect3-title et le Sect5-title correspond à du Sect4-title
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 18h07   #7
gregos93
Invité de passage
 
Homme Grégoire
Ingénieur intégration
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Grégoire
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 1
Points : 1
Merci Carden752 mais le problème n'est pas vraiment là puisque ce fichier est un exemple parmi d'autres qui ont tous des structures différentes.

J'ai donc besoin d'entrer n'importe quel fichier Word dans un programme (type macro) et d'obtenir en sortie ce même fichier mais avec une structure cohérente. (sans écart de numérotation)

Est-ce que cela est possible?

En tout cas, merci pour le temps que tu y consacres.
gregos93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2012, 21h35   #8
Heureux-oli
Responsable Word


 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 18 885
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 18 885
Points : 39 098
Points : 39 098
Salut,

C'est faisable, mais pas si simple.
Il faut faire une comparaison du niveau en cours avec le dernier niveau rencontré qui n'est pas un niveau de base.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 14h39   #9
gregos93
Invité de passage
 
Homme Grégoire
Ingénieur intégration
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Grégoire
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 1
Points : 1
Salut Oli,

Est-ce qu'on peut initier la macro ensemble, que tu me donnes un plan de bataille avec les grandes fonctions à utiliser... Je n'ai pas peur de travailler, loin de là, mais je n'ai pas spécialement de connaissances...

Merci par avance,

Gregos.
gregos93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 12h14   #10
gregos93
Invité de passage
 
Homme Grégoire
Ingénieur intégration
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Grégoire
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 1
Points : 1
Salut à tous,

Avez-vous des pistes s'il vous plaît?

Merci.

Gregos.
gregos93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 20h48   #11
Heureux-oli
Responsable Word


 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 18 885
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 48
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 18 885
Points : 39 098
Points : 39 098
Salut,

Il faut un indicateur du dernier niveau.

IntNiv

Je pense à une boucle sur tous les paragraphes du document, et pour chaque paragraphe, récupérer son niveau.

Si c'est un niveau texte, on passe.
Si c'est un niveau titre, le comparer au dernier niveau trouvé.
Si le niveau est plus élevé, on le mémorise, si le niveau est égal, on ne fait rien.
Si le niveau est plus faible, on vérifie de combien, si c'est de 1 niveau, on passe, si c'est de plusieurs niveau, on lui atribue le dernier niveau + 1


Pour boucler sur les paragraphes d'un document, c'est assez simple, on déclare un objet paragraph

Pour la boucle, on la fait sur la collection des paragraphes

Code :
1
2
3
For Each myPar in ActiveDocument.Paragraphs
...
Next myPar
Là où j'ai mis les ... on fait le traitement des données utiles.

Par exemple, on récupère le niveau de la numérotation par


Pour faire ses débuts en VBA, j'ai un tuto là : http://heureuxoli.developpez.com/office/word/vba-all/
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 20h57   #12
soeasytraining
Invité de passage
 
Femme
Coordonnatrice services d'éditique
Inscription : décembre 2012
Messages : 1
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : Canada

Informations professionnelles :
Activité : Coordonnatrice services d'éditique
Secteur : Conseil

Informations forums :
Inscription : décembre 2012
Messages : 1
Points : 1
Points : 1
Citation:
Envoyé par gregos93 Voir le message
Bonjour à tous,

Je suis débutant en word et le problème que je rencontre est au-delà de mes compétences et après quelques heures de recherche infructueuses, j'ai décidé de vous consulter.

Voilà mon contexte :

- j'extrait un document .doc d'une base de données grâce à un logiciel d'extraction.
- lorsque j'ouvre ce fichier je retrouve bien toutes les informations demandées mais la structure ne me convient pas. En effet j'obtiens des choses du type :
1. Chapitre 1
1.1.1 Section 1 du chapitre 1
- comme vous pouvez le constater il y a un écart de numérotation..

- j'ai consulté le fournisseur de ce logiciel mais ce dernier n'a pas de solution à me proposer en passant par le logiciel d'extraction.
- j'ai donc pensé à modifier directement le fichier .doc extrait via une macro par exemple. (j'extrais beaucoup de doc tous les jours donc je ne peux envisager de me les repalucher à la main...)

Auriez-vous des pistes ou une solution permettant de remettre en forme le document word, s'il vous plaît,

tel que

1. titre 1
1.1.1 section 1 chapitre 1
1.1.2 section 2 chapitre 1
1.1.2.1.1 partie 1 section 2 chapitre 1
1.1.2.1.2 partie 2 section 2 chapitre 1

devienne automatiquement

1. titre 1
1.1 section 1 chapitre 1
1.2 section 2 chapitre 1
1.2.1 partie 1 section 2 chapitre 1
1.2.2 partie 2 section 2 chapitre 1

Les styles de mon template sont bien définis, je pense qu'il faut juste modifier les styles de certains titres.

Merci à tous,

Gregos.


Salut Gregos,
La réponse serait plus précise si je savais sur quelle version de Word tu travailles. Quoi qu'il en soit, la procédure la plus simple est la même. Il s'agit d'une procédure manuelle mais elle est si rapide que ça vaut la peine de la faire:

1- Clique sur un des titres mal numéroté, préférablement la première occurrence à partir du début du texte.
2- Sur l'onglet Accueil du ruban, dans le groupe Modification, clique sur la flèche pour développer Sélectionner... et clique sur Sélectionner tout le texte ayant la même mise en forme
3- Clique sur Effacer tout (panneau de styles) ou sur Effacer la mise en forme (Galerie de styles rapides développée) SANS DÉSÉLECTIONNER. Si tu désélectionnes par accident, fait CTRL+Z.
4- Clique sur le nom de style à appliquer (par exemple titre 2)
5- Tu peux désélectionner.

hth
soeasytraining est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2012, 13h35   #13
gregos93
Invité de passage
 
Homme Grégoire
Ingénieur intégration
Inscription : décembre 2012
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Grégoire
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Industrie

Informations forums :
Inscription : décembre 2012
Messages : 7
Points : 1
Points : 1
Bonjour à tous,

Grâce à votre aide précieuse, j'ai réussi à obtenir ce que je voulais. Merci à vous.

La macro est composée de deux parties :
1ere partie, réorganiser les niveaux des titres
2ème partie, attribuer un style particulier en fonction du niveau de chaque paragraphe.

Voilà ce que ça donne :

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Sub aaaREFRESH_LAYOUT()
 
' Initialization
Dim myPar As Paragraph
Dim fatherLevel As WdOutlineLevel
 
fatherLevel = 1
 
'Loop hiérarchisation
 
    For Each myPar In ActiveDocument.Paragraphs
    myParLevel = myPar.OutlineLevel
 
    If myPar.OutlineLevel <> 10 Then
        If myPar.OutlineLevel = fatherLevel + 1 Then
        fatherLevel = myPar.OutlineLevel
        Else
            If myPar.OutlineLevel > fatherLevel + 1 Then
 
                    myPar.OutlineLevel = myPar.OutlineLevel - 1
 
                    Else
                        If myPar.OutlineLevel < fatherLevel Then
                        fatherLevel = myPar.OutlineLevel
                        End If
            End If
        End If
    End If
 
    Next
 
 
 
'Loop distribution des styles
For Each myPar In ActiveDocument.Paragraphs
 
If myPar.OutlineLevel <> 10 Then
    If myPar.OutlineLevel = 2 Then
        myPar.Style = "chapter-title"
    End If
    If myPar.OutlineLevel = 3 Then
        myPar.Style = "sect1-title"
    End If
    If myPar.OutlineLevel = 4 Then
        myPar.Style = "sect2-title"
    End If
    If myPar.OutlineLevel = 5 Then
        myPar.Style = "sect3-title"
    End If
    If myPar.OutlineLevel = 6 Then
        myPar.Style = "sect4-title"
    End If
    If myPar.OutlineLevel = 7 Then
        myPar.Style = "sect5-title"
    End If
End If
 
Next
 
'Mise à jour de tous les champs
ActiveDocument.Fields.Update
For Each T In ActiveDocument.TablesOfContents: T.Update: Next T
 
End Sub
Big Up à Olive !
Allez Ciao et à bientôt le forum !

Gregos
gregos93 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 12h00.


 
 
 
 
Partenaires

Hébergement Web