Bonjour,
Salut Ousk' ;) merci pour cette question, je mets la soluce de méphistopheles dans mes tablettes = :king:
Pour ce que j'avais suggéré, c'était surtout au niveau de l'alimentation de l'array que le focus était mis, le fait de ne pas utiliser de boucle impacte très fort la durée...
Le test suivant n'a d'intérêt que dans ce sens, vu que sinon ça revient à un copié-collé sinon :D
construction d'une feuille 60000 lignes 4 colonnes (outils de ma boîte à tests)
Ce qui permet de lancer le test de timing ensuite, alimentation et lecture-écriture de l'array :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 Sub Construit() Dim I As Long For I = 1 To 60000 Cells(I, 1) = I Next I Range("B1").Formula = "=A1*1.125" Range("C1").Formula = "=A1*B1" Range("D1").Formula = "=(A1*B1^2/C1)*(125^1/2)" Range("B1").Select Selection.AutoFill Destination:=Range("B1:B60000"), Type:=xlFillDefault Range("C1").Select Selection.AutoFill Destination:=Range("C1:C60000"), Type:=xlFillDefault Range("D1").Select Selection.AutoFill Destination:=Range("D1:D60000"), Type:=xlFillDefault End Sub
c'est dans mes vielles notes mal enregistrées, mais je crois que ça vient de L. Longre !Code:
1
2
3
4
5
6
7
8
9
10
11 Sub toto() Dim TP1 As Single Dim TP2 As Single Dim tabTabloExemple As Variant TP1 = Timer tabTabloExemple = Range("A1 :D60000").Value Worksheets(2).Range("A1 :D60000").Value = tabTabloExemple TP2 = Timer MsgBox " fait en " & TP2 - TP1 & "secondes" End Sub
cordialement,
Didier