Bonjour,

Lorsque je passe d'une feuille à l'autre, si il y'a eu une modification dans une certaine plage de donnée, on copie les données d'une feuille vers l'autre, 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
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
 
Public Sub copieVentilVersRecap()
Dim intDerniereLigne As Integer
Dim intDerniereLigneRecap As Integer
Dim strFormuleCol5 As String
 
'On Error GoTo Err_copieVentilVersRecap
 
    intDerniereLigne = WsVentilation.Range("AC65536").End(xlUp).Row + 1 ' pour le total
    intDerniereLigneRecap = WsRecap.Range("AC65536").End(xlUp).Row + 1
    'MEI =======================================
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    WsRecap.Unprotect
    Application.StatusBar = "Début de la copie des données de la feuille Ventilation vers Recap"
 
    ClasseRecapParCollabo
 
    WsVentilation.Range("A6:B" & intDerniereLigne).Copy
    WsRecap.Range("C6:D" & intDerniereLigne).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
 
    WsVentilation.Range("C6:D" & intDerniereLigne).Copy
    WsRecap.Range("A6:B" & intDerniereLigne).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
 
 
    WsVentilation.Range("E6:AC" & intDerniereLigne).Copy
    WsRecap.Range("E6:AC" & intDerniereLigne).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
 
   ' WsVentilation.Cells(1, 1).SetFocus
 
    Application.StatusBar = "Fin de la copie des données de la feuille Ventilation vers Recap"
 
    If intDerniereLigne < intDerniereLigneRecap Then
        WsRecap.Rows(intDerniereLigne + 1 & ":" & intDerniereLigneRecap).Delete xlUp
    End If
 
    gbRecapChange = False
    gbVentilChange = False
 
    ClasseRecapParContrat
     'Sortie obligatoire ========================
Sort_Workbook_SheetChange:
        DefinitComportementRecap (gIntModeUtilisation)
        WsRecap.Protect
        Application.ScreenUpdating = True
        Application.EnableEvents = True
        Application.StatusBar = ""
        Exit Sub
    'Traitement des erreurs =====================
Err_copieVentilVersRecap:
        MsgBox err.Description, vbCritical + vbOKOnly, "ERREUR n°" & err.Number
        Resume Sort_Workbook_SheetChange
 
 
End Sub

La première fois que les données sont copiées, cela se fait rapidement, puis la deuxieme fois un peu moins rapidement et la 5ème fois Excel devient un gros escargot..

Un problème de contenu dans le presse papier?
De plus après la taille du fichier devient considérablement plus important.

merci d'avance

Nath