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.
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.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
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.
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)
Tu as copié la macro dans quel document ?
Serait-ce dans le normal.dot ?
J'ai crée une nouvelle macro en normal.dotm et j'ai remplacé son code tout simplement.
Alors, c'est normal que le code coince un peu.
Fait référence au signet du document et pas de l'activedocument
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set MyRange = ActiveDocument.Range(Start:=Bookmarks("S1").Range.Start, End:=Bookmarks("S2").Range.End)
Essaie comme ça !
Code : Sélectionner tout - Visualiser dans une fenêtre à part Set MyRange = ActiveDocument.Range(Start:=ActiveDocument.Bookmarks("S1").Range.Start, End:=ActiveDocument.Bookmarks("S2").Range.End)
Effectivement, ça fonctionne sans erreur maintenant. Merci beaucoup de m'avoir apporté la solution.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager