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
Partager