Bonjour,

J'ai une macro Excel développée depuis plusieurs années qui fonctionnait bien sous Excel2010 et Windows Seven. Depuis que j'ai migré sous Windows 10 je rencontre très fréquemment l'erreur 1004 : "Excel ne peut pas coller les données".

Cette macro ouvre un fichier de trace Oziexplorer au format texte avec des virgules comme séparateur. Après suppression des 4 premières lignes, les colonnes A à C sont copiées. Ce fichier temporaire est fermé et les données sont collées dans une feuille nommée "Traitement_traces". C'est au collage de ces données que j'ai cette erreur aléatoire. Le contenu du presse papier est vide lorsque cette erreur apparaît.

Voici cette macro

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Sub Ajout_traces_plusieurs_fichiers_plt()
 
Dim fichier_trace As String
Dim c As Integer
 
Sheets("Liste").Select
 
Range("H3").Value = Range("H3").Value + 1
 
c = Range("H3").Value
 
 Sheets("Traitement_traces").Select
 
If c = 1 Then
 
    Columns("A:G").Select
    Selection.ClearContents
End If
 
Sheets("Liste").Select
 
fichier_trace = Range("A" & c).Value & "\" & Range("B" & c).Value
 
      Workbooks.OpenText Filename:= _
        fichier_trace _
        , Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
        :=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
        False, Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array( _
        1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, _
        1), Array(9, 1), Array(10, 1)), TrailingMinusNumbers:=True
        Range("C7").Value = 1
    Rows("1:6").Select
    Selection.Delete Shift:=xlUp
 
 
    Columns("A:C").Select
    Selection.Copy
 
 
Application.DisplayAlerts = False
 
ActiveWindow.Close
 
Worksheets("Traitement_traces").Select
 
    If c = 1 Then
 
    Range("E1").Value = Sheets("Liste").Range("B" & c).Value
 
    ActiveSheet.Paste Destination:=Worksheets("Traitement_traces").Range("A1")
    End If
 
    If c > 1 Then
 
    Range("A" & Rows.count).End(xlUp).Offset(1, 4) = Sheets("Liste").Range("B" & c).Value
 
 
     ActiveSheet.Paste Destination:=Worksheets("Traitement_traces").Range("A" & Rows.count).End(xlUp).Offset(1)
 
    End If
 
 
End Sub
J'ai remarqué que lorsque je lance cette macro Excel après redémarrage du PC sans autre logiciel ouvert, la macro en général se déroule correctement

J'ai fait une recherche avec Google mais n'ai pas encore trouvé de cas similaires. L'historique du Presse papier n'est pas activé.

Je vous remercie de votre aide

Bernard