Bonjour voici la macro:
Cette macro marche!
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 Sub copie2() Dim Origine As Worksheet Dim Destination As Worksheet Dim Orig As Range Dim Dest As Range Dim Tableau1() As String Dim i As Long Dim j As Long Dim Derligne1 As Long Set Origine = Worksheets("Feuil1") Set Destination = Worksheets("Feuil2") Set Orig = Origine.Range("A1") Set Dest = Destination.Range("A1") Orig = Orig.Offset() Dest = Dest.Offset() Dim Pass1 As Double Dim Pass2 As Double Pass1 = Timer With Sheets("Feuil1") Derligne1 = .Cells(.Rows.Count, 1).End(xlUp).Row End With ReDim Tableau1(0 To Derligne1) For i = 0 To UBound(Tableau1) Tableau1(i) = Orig.Offset(i, 0) Next i i = 0 j = 0 Do While Tableau1(i) <> "" And Dest.Offset(j, 0) <> "" If Tableau1(i) = Dest.Offset(j, 0) Then Dest.Offset(j, 6) = Orig.Offset(i, 2) If Dest.Offset(j + 1, 0) = Dest.Offset(j, 0) Then i = i j = j + 1 Else i = i + 1 j = j + 1 End If ElseIf (Dest.Offset(j, 0) - Orig.Offset(i, 0)) > "0,1" Then i = i + 1 j = j Else i = i j = j + 1 End If Loop Pass2 = Timer MsgBox Pass2 - Pass1 & " secondes " End Sub
Elle est juste très lente et j'aimerais la rendre plus rapide et en même temps, l'appliquer à tous les onglets.
Ce qu'elle fait:
J'ai 2 feuilles horodatées en ligne A.
La macro copie les cellules C de la feuille 1 vers les cellules G de la feuille 2, en fonction de l'horodatage des lignes.
Exemple:
Feuil1
Colonne A__________Colonne C
21/06/2014 19:20__________A
21/06/2014 19:30__________A
21/06/2014 19:40__________B
21/06/2014 19:50__________D
21/06/2014 20:00__________D
Feuil2
Colonne A__________ColonneG
21/06/2014 19:20__________A
21/06/2014 19:20__________A
21/06/2014 19:20__________A
21/06/2014 19:20__________A
21/06/2014 19:20__________A
21/06/2014 19:30__________A
21/06/2014 19:30__________A
21/06/2014 19:30__________A
21/06/2014 19:30__________A
21/06/2014 19:30__________A
21/06/2014 19:40__________B
21/06/2014 19:40__________B
21/06/2014 19:40__________B
21/06/2014 19:40__________B
21/06/2014 19:40__________B
21/06/2014 19:40__________B
21/06/2014 19:50__________D
21/06/2014 19:50__________D
21/06/2014 19:50__________D
21/06/2014 19:50__________D
21/06/2014 20:00__________D
21/06/2014 20:00__________D
Partager