Bonjour,
J'ai une liste de donnees dans un premier classeur. Le code que j'ai ecrit ouvre un 2e classeur excel qui contient les donnees pour le mois en cours. Je copie/colle ces donnees mensuelles dans le premier classeur.
Seulement voila, mon code prend 3 plombes, et je ne sais pas pourquoi.
Lorsque j'omets "Application.ScreenUpdating = False", je vois a l'ecran, que les chiffres du 2e classeur sont copies/colles dans le 1er un a un, a la vitesse, d'un chiffre par seconde.
Voici le code:
Merci de m'aider a l'optimiser, car ca prend une minute pour remplir 10 lignes a peine!
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 Sub trouver_fichier_CARM() 'et le compiler avec les autres donnees de l'annee Dim dossier, fichier As String Dim aux() As Variant Dim borne, borne2 As Single Dim zoneAcopier As Range dossier = "G:\XXX\Sampling\list since Nov2008\" ChDrive dossier: ChDir dossier fichier = Dir("*" & Range("current_month") & "*09*") Sheets("Ext").Range("B2") = UCase(fichier) Workbooks.Open Filename:="G:\XXX\Sampling\list since Nov2008\" & fichier Workbooks(fichier).Activate Application.ScreenUpdating = False 'dimentionner le tableau auxiliaire borne = ActiveWorkbook.Sheets(1).Columns(1).Range("A1").CurrentRegion.Columns(1).Cells.Count - 1 ReDim Preserve aux(1 To borne, 1 To 10) 'enregistrer les donnees dans le tableau auxiliaire For i = 1 To borne 'lignes For j = 1 To 10 'colonnes aux(i, j) = ActiveWorkbook.Sheets(1).Cells(i + 1, j).Value Next j Next i 'fermer et ouvrir les classeurs ActiveWorkbook.Close Workbooks("list 2009").Activate 'recopier les donnnees dans le tableau general borne2 = ActiveWorkbook.Sheets(1).Columns(1).Range("A1").CurrentRegion.Columns(1).Cells.Count For i = 1 To borne 'lignes For j = 1 To 10 'colonnes ActiveWorkbook.Sheets(1).Cells(i + borne2, j).Value = aux(i, j) Next j Next i Application.ScreenUpdating = True End Sub
Partager