Bonjour,
Je lis un tableau en base de données et je dois repercuter les inofmrations entre 3 sheets.
WS1 contient tous les records
WS2 contient les records de type BUG
WS3 contient les records de type REQUEST
WS1 = WS2 union WS3 union (le reste)
J'ai une seule boucle qui va remplir systematiquement WS1 et qui remplira eventuellement soit WS2 et WS3:
Voila 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 While Not rst.EOF ''On met à jour ALL For i = 0 To rst.Fields.Count - 1 Step 1 Sheets("ALL").Cells(Row, i + 1).Value = rst(i).Value Next ''On MAJ BUG If (rst("Active/Inactive").Value = "Active" And rst("type").Value = "BUG") Then For i = 0 To rst.Fields.Count - 1 Step 1 Sheets("ACTIVE BUG 2").Cells(RowBUG, i + 1).Value = rst(i).Value ''On met à jour avec les champs custo Sheets("ACTIVE BUG 2").Range("Q" & RowBUG & ":" & "T" & RowBUG).Value = Sheets("ALL").Range("Q" & Row & ":" & "T" & Row).Value Next RowBUG = RowBUG + 1 End If ''On MAJ ENH If (rst("Active/Inactive").Value = "Active" And rst("type").Value = "ENH") Then For i = 0 To rst.Fields.Count - 1 Step 1 Sheets("ACTIVE ENH 2").Cells(RowENH, i + 1).Value = rst(i).Value ''On met à jour avec les champs custo Sheets("ACTIVE ENH 2").Range("Q" & RowENH & ":" & "T" & RowENH).Value = Sheets("ALL").Range("Q" & Row & ":" & "T" & Row).Value Next RowENH = RowENH + 1 End If Row = Row + 1 rst.MoveNext Wend
Le problème c'est la lenteur : le fait de basculer entre WS1 et WS2 ainsi qu'entre WS1 et WS3 bouffe beaucoup de temps.
Comment faire pour enregistrer les resultats dans une WS temporaire sans avoir à basculer sans cesse. Une fois la boucle fini , il me suffirait d'envaoyer vers WS2 et WS3.
Comment faire?
Partager