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 19/01/2012, 17h40   #1
Invité de passage
 
Inscription : janvier 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 4
Points : 2
Points : 2
Par défaut Suppression d'un chapitre complet

Chers amis bonjour.
Voici le problème du jour.
Soit un document word hiérarchisé, où je veux sélectionner pour effacer des parties entières. Ces parties étant des chapitres complets

Titre 1
Titre 2
Titre 3
Texte normal
Texte normal
Titre 3
Texte normal
Texte normal
Titre 2
Texte normal
Texte normal
.....

pour supprimer l'ensemble des chapitres (ensemble de paragraphes) de mon premier "Titre 2", la manip facile est de passer en mode plan, venir sur la puce de "Titre 2", de cliquer. Ce qui sélectionnerai dans mon exemple, en 1 seul click l'ensemble des chapitres :
Titre 2
Titre 3
Texte normal
Texte normal
Titre 3
Texte normal
Texte normal

comment arriver à cette manoeuvre simple en VBA ?
je n'arrive qu'à une usine à gaz !!
Fabricolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 21h23   #2
Expert Confirmé
 
Homme Philippe
ex Observeur CGG / Analyste prog.
Inscription : juin 2006
Messages : 1 715
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Localisation : France, Finistère (Bretagne)

Informations professionnelles :
Activité : ex Observeur CGG / Analyste prog.

Informations forums :
Inscription : juin 2006
Messages : 1 715
Points : 3 655
Points : 3 655
Salut, lire http://heureuxoli.developpez.com/office/word/vba-word/
__________________
Pensez à Voter, d'avance merci. ( Pouces en bas à la droite de Citer )
Balisez votre code après l'avoir indenté sous Excel via Smart Indenter
Autre utilitaire : MZ Tools 3.0 VBA

Contribution : Excel / Word / PDF avec Adobe Acrobat Pro / PDFCreator 1 2
kiki29 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2012, 02h56   #3
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 356
Points : 3 356
Salut Fabricolo,

Oui le conseil de kiki29 est très bon mais peut-être un peu trop général dans ton cas précis.

Comme kiki29 a assimilé le tuto de Heureux-Oli et l'a certainement pressenti, une boucle sur les paragraphes du document va te permettre de retrouver les paragraphes de titre désirés pour les supprimer. Le code peut donc ressembler à ça
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Sub DVP_SupprimerlesTitres2()
    '// On parcourt le document
    aI = 1
    While aI < ActiveDocument.Paragraphs.Count
        If ActiveDocument.Paragraphs(aI).Style = "Titre 2" Then
            aJ = aI
            aI = aI + 1
            While (aI < ActiveDocument.Paragraphs.Count) And ((ActiveDocument.Paragraphs(aI).Style <> "Titre 1") And (ActiveDocument.Paragraphs(aI).Style <> "Titre 2"))
                'MsgBox "ActiveDocument.Paragraphs(aI).Style = " & ActiveDocument.Paragraphs(aI).Style
                aI = aI + 1
            Wend
            ActiveDocument.Range(Start:=ActiveDocument.Paragraphs(aJ).Range.Start, End:=ActiveDocument.Paragraphs(aI - 1).Range.End).Delete
            aI = aJ
        Else
            aI = aI + 1
        End If
    Wend
End Sub
Attention, ici je l'ai fait pour tous les titres 2, je pense que tu veux en sélectionner que certains ==> ajoute ce critère dans la ligne
Code :
       If ActiveDocument.Paragraphs(aI).Style = "Titre 2" Then
Attention, le passage en mode plan pour faire tes sélections n'est pas une bonne idée car la commande
Code :
Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=True
donne des résultats pour le moins inattendus () ==> à éviter si tu veux garder des cheveux

@+
Sepia est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 21/01/2012, 18h24   #4
Invité de passage
 
Inscription : janvier 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 4
Points : 2
Points : 2
Merci Sepia

ta proposition correspond bien à mon besoin.
et est nettement plus simple que ce que j'avais commencé à faire seul de mon coté.
Un moment j'avais rèvé d'une commande bien planquée, permettant de faire la même opération que celle réalisable à la souris... tant pis.
Merci et bonne journée à tous
Fabricolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 03h48   #5
Rédacteur/Modérateur
 
Avatar de Sepia
 
Homme JF Jousseaume
Inscription : octobre 2007
Messages : 2 390
Détails du profil
Informations personnelles :
Nom : Homme JF Jousseaume
Âge : 48
Localisation : France

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 2 390
Points : 3 356
Points : 3 356
Salut Fabrico

lo,
Citation:
Envoyé par Fabricolo Voir le message
Merci Sepia

Un moment j'avais rèvé d'une commande bien planquée, permettant de faire la même opération que celle réalisable à la souris... tant pis.
Merci et bonne journée à tous
Même pas en rêve
Sepia 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 02h42.


 
 
 
 
Partenaires

Hébergement Web