Bonjour,

J'ai un soucis pour effectuer cette tâche à priori simple en VBA sous Excel d'un copié-collé qui fait partie d'un traitement assez lourd (90000 lignes de code).

Le traitement bute sur la copie : Excel ne répond plus, mais je peux encore récupérer la main en faisant "<CTRL> + <ArretDeffil>". A chaque fois je me trouve sur la ligne qui porte l'action de "coller".

Voici le code :

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
Sub CopyPasteRange(ByRef WksDest As Worksheet, ByVal str_PlageSrc As String, str_PlageDest As String)
    Dim StrPlage            As String
    Dim LngCutCopyMode      As Long
 
    Application.EnableEvents = False
    Application.EnableLivePreview = False
    Application.EnableAutoComplete = False
    Application.EnableAnimations = False
    Application.EnableLivePreview = False
 
    LngCutCopyMode = Application.CutCopyMode
    Call VidePressePapier
    Application.CutCopyMode = xlCopy
 
    With Worksheets(WksDest.Name)
        StrPlage = Replace(str_PlageSrc, "$", "")
        .Range(StrPlage).Copy
        StrPlage = Replace(str_PlageDest, "$", "")
        .Range(StrPlage).PasteSpecial _
             Paste:=xlPasteAll, Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False
    End With
 
    Application.CutCopyMode = LngCutCopyMode
 
    Application.EnableEvents = True
    Application.EnableLivePreview = True
    Application.EnableAutoComplete = True
    Application.EnableAnimations = False
    Application.EnableLivePreview = False
 
End Sub
J'ai déjà essayé plusieurs choses et à chaque fois ça fait le comportement est le même.

Il y a des évènements dans les Worksheet et dans le ThisWorkbook. Ça explique peut-être mon souci, mais en même temps, comme vous pouvez le voir ci-dessus j'ai désactivé les évènements.

Est-ce que vous pourriez m'aider s'il vous plait à comprendre pourquoi cette procédure ne marche pas. Verriez vous une solution à mon problème ?

Par avance merci.

Marco.