Bonjour,

j'utilise une macro pour copier une centaine de plages depuis excel vers word.
Ma macro marchait bien sous xp, elle plante aujourd'hui sous W7.

Le message d'erreur apparait de manière aléatoire sur 1, 2 10 ou aucun de mes copier coller. Si je refait deux fois la même macro avec exactement les mêmes fichiers il ne plante pas au même endroit.

"erreur d'éxecution 4605 : cette méthode ou propriété n'est pas disponible car le presse papier est vide ou non valide".
je vous présente mon code initial à la fin du message et les modifications que j'ai déjà essayé sans succes.

1) j'ai essayé de contourner la façon dont je sélectionne mes signets mais cela sans succes, en remplaçant le texte en vert dans mon code initial par le code ci-dessous :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Nom_signet = "signet3" & i
With WordApp
.Selection.GoTo What:=wdGoToBookmark, Name:=Nom_signet
.Selection.PasteAndFormat (13)
End With
2) j'ai aussi essayé de créer des "pastespecial link" en metafilepicture et Bitmap en remplaçant le code en orange dans mon code initial par le code suivant. Là ça marche mais c'est très lent. trop lent. je ne sais pas comment accélérer le code.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
AppWord.Selection.Pastespecial link:=False, DataType:=wdpasteBitmap, Placement:=wdlnline, DisplayAslcon:=False
Merci à ceux qui pourront me débloquer.


mon code initale était :

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 Copie_vers_Pile()
 
Application.ScreenUpdating = False
 
Dim WordApp As Object 'Word.Application
Dim WordDoc As Object 'Word.Document
Dim Nom_Fichier_Word As Variant
Dim i As Byte
Dim Nom_signet As String
Const wdGoToBookmark = -1
 
i = 1
 
Nom_Fichier_Word = Application.GetOpenFilename("Fichiers Word (*.docx), *.docx", 1, "Sélectionner le fichier pour créer la note de calculs")
Set WordApp = CreateObject("word.application") 'Ouvre une session Word
Set WordDoc = WordApp.Documents.Open(Nom_Fichier_Word) 'Ouvre le document Word
 
WordApp.Visible = False
 
Worksheets("P3. Données + résultats ST1").Select
Range("A8:N36").Select
Selection.Copy
WordDoc.Bookmarks("signet3" & i).Range.Select
WordApp.Selection.PasteAndFormat (13)
i = i + 1: Application.CutCopyMode = False
 
Worksheets("P3. Données + résultats ST1").Select
Range("A38:N53").Select
Selection.Copy
WordDoc.Bookmarks("signet3" & i).Range.Select
WordApp.Selection.PasteAndFormat (13)
i = i + 1: Application.CutCopyMode = False
 
[...]
 
Worksheets("P3. Données + résultats ST1").Select
Range("T15").Select
Application.ScreenUpdating = True
WordApp.Visible = True
 
End Sub