Trouver un terme et copier celui ci avec son paragraphe

Le
Arnaud
Bonjour,

Je ne suis pas un pro de Visual Basic néanmoins j'ai trouvé cette
formule pour faire exactement ce que je voulais, à savoir trouver un
terme précis, copier dans un nouveau document le paragraphe ou il
apparait. Très utile pour les synthèses.

Voilà le code pour word 2002
Sub CopyParas
Selection.Find.ClearFormatting
With Selection.Find
.Text = "The Text You Want to Find"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Do While Selection.Find.Execute
Selection.StartOf Unit:=wdParagraph
Selection.MoveEnd Unit:=wdParagraph
sBigString = sBigString + Selection.Text
Selection.MoveStart Unit:=wdParagraph
Loop
Documents.Add DocumentType:=wdNewBlankDocument
Selection.InsertAfter (sBigString)
End Sub

Modifié pour 2010, celui ci ne marche plus (m'affiche une série de
lettre), pouvez vous m'aider?
Sub CopyParas
Selection.Find.ClearFormatting
With Selection.Find
.Text = "The Text You Want to Find"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Do While Selection.Find.Execute
Selection.StartOf Unit:=wdParagraph
Selection.MoveEnd Unit:=wdParagraph
sBigString = sBigString + Selection.Text
Selection.MoveStart Unit:=wdParagraph
Loop
Documents.Add
Selection.InsertAfter (sBigString)
End Sub

Merci d'avance,

Arnaud.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
DanielCo
Le #23890411
Bonjour,
Oui, mais tu es chez Excel, ici. Pose ta question ici :

http://answers.microsoft.com/fr-fr/office/forum/word

ou sur un autre forum Word.
Daniel


Bonjour,

Je ne suis pas un pro de Visual Basic néanmoins j'ai trouvé cette
formule pour faire exactement ce que je voulais, à savoir trouver un
terme précis, copier dans un nouveau document le paragraphe ou il
apparait. Très utile pour les synthèses.

Voilà le code pour word 2002
Sub CopyParas
Selection.Find.ClearFormatting
With Selection.Find
.Text = "The Text You Want to Find"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Do While Selection.Find.Execute
Selection.StartOf Unit:=wdParagraph
Selection.MoveEnd Unit:=wdParagraph
sBigString = sBigString + Selection.Text
Selection.MoveStart Unit:=wdParagraph
Loop
Documents.Add DocumentType:=wdNewBlankDocument
Selection.InsertAfter (sBigString)
End Sub

Modifié pour 2010, celui ci ne marche plus (m'affiche une série de
lettre), pouvez vous m'aider?
Sub CopyParas
Selection.Find.ClearFormatting
With Selection.Find
.Text = "The Text You Want to Find"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Do While Selection.Find.Execute
Selection.StartOf Unit:=wdParagraph
Selection.MoveEnd Unit:=wdParagraph
sBigString = sBigString + Selection.Text
Selection.MoveStart Unit:=wdParagraph
Loop
Documents.Add
Selection.InsertAfter (sBigString)
End Sub

Merci d'avance,

Arnaud.
MichD
Le #23890481
Bonjour,


Cette macro recherche l'expression stipulée dans chacun des paragraphes du document à l'écran.
Si l'expression recherchée est présente, elle place dans une variable tout le paragraphe. Elle boucle
sur tous les paragraphes du document.
À la fin, elle place tous les paragraphes où l'expression était présente dans un nouveau document.

'-----------------------------------------
Sub CopyParas11()
Dim Rg As Range,sBigString As String
Set Rg = ActiveDocument.Range
Rg.Find.ClearFormatting
With Rg.Find
.Text = "Le texte à rechercher"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
With Rg
Do While .Find.Execute
.StartOf Unit:=wdParagraph
.MoveEnd Unit:=wdParagraph
sBigString = sBigString + .Text
.MoveStart Unit:=wdParagraph
Loop
End With
If sBigString <> "" then
Documents.Add
ActiveDocument.Range.InsertAfter sBigString
End If
End Sub
'-----------------------------------------



MichD
------------------------------------------
"Arnaud" a écrit dans le message de groupe de discussion :


Bonjour,

Je ne suis pas un pro de Visual Basic néanmoins j'ai trouvé cette
formule pour faire exactement ce que je voulais, à savoir trouver un
terme précis, copier dans un nouveau document le paragraphe ou il
apparait. Très utile pour les synthèses.

Voilà le code pour word 2002
Sub CopyParas
Selection.Find.ClearFormatting
With Selection.Find
.Text = "The Text You Want to Find"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Do While Selection.Find.Execute
Selection.StartOf Unit:=wdParagraph
Selection.MoveEnd Unit:=wdParagraph
sBigString = sBigString + Selection.Text
Selection.MoveStart Unit:=wdParagraph
Loop
Documents.Add DocumentType:=wdNewBlankDocument
Selection.InsertAfter (sBigString)
End Sub

Modifié pour 2010, celui ci ne marche plus (m'affiche une série de
lettre), pouvez vous m'aider?
Sub CopyParas
Selection.Find.ClearFormatting
With Selection.Find
.Text = "The Text You Want to Find"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Do While Selection.Find.Execute
Selection.StartOf Unit:=wdParagraph
Selection.MoveEnd Unit:=wdParagraph
sBigString = sBigString + Selection.Text
Selection.MoveStart Unit:=wdParagraph
Loop
Documents.Add
Selection.InsertAfter (sBigString)
End Sub

Merci d'avance,

Arnaud.
MichD
Le #23890571
Ceci est suffisant :

'---------------------------------------
Sub Trouver_Expression_Copie_Paragraphe_Nouveau_Document()
Dim Rg As Range, sBigString As String, Cherche As String
'******Variable à définir*******
Cherche = "ecoule" 'Expression à rechercher
'*******************************
'Avec le document actif à l'écran dans Word
Set Rg = ActiveDocument.Range
With Rg
.Find.ClearFormatting
Do While .Find.Execute(FindText:="écoule", MatchCase:úlse)
.StartOf Unit:=wdParagraph
.MoveEnd Unit:=wdParagraph
sBigString = sBigString + .Text
.MoveStart Unit:=wdParagraph
Loop
End With
'Ajoute un document seulement si au moins une occurrence est trouvée
If sBigString <> "" Then
Documents.Add
ActiveDocument.Range.InsertAfter sBigString
End If
End Sub
'---------------------------------------



MichD
------------------------------------------
MichD
Le #23890901
Suite à une modification de dernière minute, j'ai omis de modifier cette ligne
de code qui devrait se lire comme suit. J'ai simplement remplacé l'expression
recherchée par le nom de la variable...

Do While .Find.Execute(FindText:=Cherche, MatchCase:úlse)

'---------------------------------------
Sub Trouver_Expression_Copie_Paragraphe_Nouveau_Document()
Dim Rg As Range, sBigString As String, Cherche As String
'******Variable à définir*******
Cherche = "ecoule" 'Expression à rechercher
'*******************************
'Avec le document actif à l'écran dans Word
Set Rg = ActiveDocument.Range
With Rg
.Find.ClearFormatting
Do While .Find.Execute(FindText:=Cherche, MatchCase:úlse)
.StartOf Unit:=wdParagraph
.MoveEnd Unit:=wdParagraph
sBigString = sBigString + .Text
.MoveStart Unit:=wdParagraph
Loop
End With
'Ajoute un document seulement si au moins une occurrence est trouvée
If sBigString <> "" Then
Documents.Add
ActiveDocument.Range.InsertAfter sBigString
End If
End Sub
'---------------------------------------


MichD
------------------------------------------
MichD
Le #23891401
OUPS ! la bonne syntaxe de cette ligne de code est :

Do While .Find.Execute(FindText:=(Cherche), MatchCase:úlse)

Faut mettre la variable "Cherche" entre parenthèse pour assurer le
bon fonctionnement de la procédure.

'---------------------------------------
Sub Trouver_Expression_Copie_Paragraphe_Nouveau_Document()
Dim Rg As Range, sBigString As String, Cherche As String
'******Variable à définir*******
Cherche = "ecoule" 'Expression à rechercher
'*******************************
'Avec le document actif à l'écran dans Word
Set Rg = ActiveDocument.Range
With Rg
.Find.ClearFormatting
Do While .Find.Execute(FindText:=(Cherche), MatchCase:úlse)
.StartOf Unit:=wdParagraph
.MoveEnd Unit:=wdParagraph
sBigString = sBigString + .Text
.MoveStart Unit:=wdParagraph
Loop
End With
'Ajoute un document seulement si au moins une occurrence est trouvée
If sBigString <> "" Then
Documents.Add
ActiveDocument.Range.InsertAfter sBigString
End If
End Sub
'---------------------------------------


MichD
------------------------------------------
Publicité
Poster une réponse
Anonyme