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
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+
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
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 e1di02QxEHA.2624@TK2MSFTNGP11.phx.gbl, « Geo »
<Geo@sans.pub> 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
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
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)
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)
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)
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
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... ?! ;-))))))