OVH Cloud OVH Cloud

recopier style

14 réponses
Avatar
ROBINJP
Bonjour,

je suis ultra novice en VBA mais j'ai besoin d'une macro pour recopier
automatiquement dans un document 2 tous les paragraphes de style B de mon
document 1, à la condition qu'ils soient précédés d'un mot X de style A.

quelques précisions :

- X est une variable que je dois préciser avant de lancer la recherche.
- dans mon document le style A est toujours suivi d'un paragraphe de style B

merci pour vos conseils (et vos macros !)

JP

4 réponses

1 2
Avatar
Geo
Bonjour JièL Goubert


Bonjoir(c) Anacoluthe

Le 07/11/2004 22:36 vous avez écrit ceci :
et on peut faire ça assez vite /sans/ macro (hein Geo :-) )

RR et multi-sélection qu'on vous avait dit :-)


MDR

« Un AMIS, c'est quelqu'un qui sait macroter et qui ne macrote pas. »
- JièL


Excellent(s)
Mais j'ai une excuse :
je m'arrête à word 2000 sur ma bécane.

--

A+


Avatar
Jean-Philippe
Merci Geo, ça marche impec !
Et je préfère utiliser la macro car la fonction rechercher demande à le
faire autant de recherches qu'il y a de personnages... De plus sur ma
version de word il n'est pas possible de rechercher toutes les occurrences
d'un mot.

Merci à tous


Le 7/11/04 22:05, dans , « Geo »
a écrit :

Bonjour Jean-Philippe


Quelqu'un a une solution ?


Voici un exemple qui barre tout<le texte qui n'est pas pour l'acteur
concerné.
Si tu veux le supprimer tu le fais par Edition remplacer.
L'exemple pourrait être condensé, mais comme ceci il me parait plus facile
à comprendre.

Option Explicit
Dim TC As Document ' Texte complet

Sub TexteDeChaqueActeur()
Set TC = ActiveDocument
TexteDe ("Jacques")
TexteDe ("Pierre")
End Sub

Sub TexteDe(Personnage As String)
Dim Tp As Document
Dim Np As Integer
Dim i As Integer
Dim Effacer As Boolean
Dim T As String
Dim L As Integer
Set Tp = Documents.Add
' Recopie du document complet
TC.Select
Selection.WholeStory
Selection.Copy
Tp.Select
Selection.Paste
'Traitement des paragraphes
Np = Tp.Paragraphs.Count
L = Len(Personnage)
For i = 1 To Np
If Tp.Paragraphs(i).Style = "Style A" Then
'Est-ce le bon personnage ?
T = Left(Tp.Paragraphs(i).Range.Text, L)
If T = Personnage Then
Effacer = False
Else
Effacer = True
End If
End If
If Effacer Then
Tp.Paragraphs(i).Range.Font.StrikeThrough = True
End If
Next
' écrit le document au nom du personnage
Tp.SaveAs Personnage

End Sub




Avatar
Geo
Bonjour Jean-Philippe


Merci Geo, ça marche impec !
Et je préfère utiliser la macro car la fonction rechercher demande à
le faire autant de recherches qu'il y a de personnages... De plus sur
ma version de word il n'est pas possible de rechercher toutes les
occurrences d'un mot.

Merci à tous



Merci à toi pour ce retour.
A problème bien posé, solutions efficaces (je mets bien au pluriel)

Avatar
JièL Goubert
Bonjoir(c) Geo

Le 08/11/2004 08:14 vous avez écrit ceci :
Mais j'ai une excuse :
je m'arrête à word 2000 sur ma bécane.


Tu cherches vraiment toutes les excuses possible... ?! ;-))))))

--
JièL Ex Ku z'heure

1 2