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 03/05/2008, 19h51   #1
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
Par défaut Copier une partie d'un texte

Bonjour, j'aimerai créer une macro qui sélectionne une partie d'un texte, de tel mot à tel mot, et qui fait ensuite un copié-collé vers une autre page. Cela est-il possible et de quelle manière? Merci.
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2008, 20h43   #2
Responsable Word

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

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

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
C'est tout à fait possible.

Il faut en premier lieu faire une recherche du premier mot et une fois trouvé, y placer un signet.
Ensuite faire une recherche sur le second mot et y placer un second signet.

Il suffit de faire une sélection et utiliser les deux signets pour délimiter la plage de données, la copier et ensuite la coller.

Peut-être une piste ?

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
 
Sub copiePlage()
Dim MyRange As Range
Dim Deb As String
Dim fin As String
 
Selection.HomeKey unit:=wdStory
 
 
 
Deb = InputBox("Entrez le mot de début !", "Mot du début de sélection")
 
With Selection.Find
    .Text = Deb
    .Forward = True
    .ClearFormatting
    .Execute
 
End With
 
Selection.Bookmarks.Add "S1"
Selection.HomeKey unit:=wdStory
fin = InputBox("Entrez le mot de fin !", "Mot de fin ")
 
With Selection.Find
    .Text = fin
    .Forward = True
    .ClearFormatting
    .Execute
End With
Selection.Bookmarks.Add "S2"
Debug.Print "bm ok"
 
Set MyRange = ActiveDocument.Range(Start:=Bookmarks("S1").Range.Start, End:=Bookmarks("S2").Range.End)
Debug.Print "range select"
MyRange.Select
Selection.Copy
Documents.Add
Selection.Paste
 
End Sub
__________________
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 04/05/2008, 09h14   #3
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
c'est laméthode à laquelle j'avais pensé mais je connais pas grand chose pour le moment au langage visual basic et je vous remercie de m'avoir donné le code.
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2008, 12h07   #4
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
J'ai reporté le code mais j'obtiens:

"Erreur de compilation
Sub ou Function non définie"

Set MyRange = ActiveDocument.Range(Start:=Bookmarks("S1").Range.Start, End:=Bookmarks("S2").Range.End)
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2008, 12h26   #5
Responsable Word

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

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

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
Tu as copié la macro dans quel document ?

Serait-ce dans le normal.dot ?
__________________
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 04/05/2008, 16h58   #6
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
J'ai crée une nouvelle macro en normal.dotm et j'ai remplacé son code tout simplement.
Arsene12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2008, 17h59   #7
Responsable Word

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

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

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
Alors, c'est normal que le code coince un peu.

Code :
Set MyRange = ActiveDocument.Range(Start:=Bookmarks("S1").Range.Start, End:=Bookmarks("S2").Range.End)
Fait référence au signet du document et pas de l'activedocument

Code :
Set MyRange = ActiveDocument.Range(Start:=ActiveDocument.Bookmarks("S1").Range.Start, End:=ActiveDocument.Bookmarks("S2").Range.End)
Essaie comme ça !
__________________
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 04/05/2008, 20h43   #8
Nouveau Membre du Club
 
Inscription : février 2003
Messages : 164
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 164
Points : 30
Points : 30
Effectivement, ça fonctionne sans erreur maintenant. Merci beaucoup de m'avoir apporté la solution.
Arsene12 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 00h37.


 
 
 
 
Partenaires

Hébergement Web