Bonjour, le forum!
Le code ci-dessous fonctionne, mais prend trop de temps à s'exécuter. Y a-t-il un moyen de réduire le temps d'exécution de cette macro? Comment?
Merci par avance
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
62
63
64
65 Private Sub CmdValider_Click() Dim choix As String choix = vbYes If MsgBox("Voulez-vous enregistrer cette opération?", vbQuestion + vbYesNo, "Confirmation") = vbYes Then Dim derligne As Integer Dim WS As Worksheet Dim ligne As Integer Set WS = Sheets("Journaux") derligne = WS.Range("B5000").End(xlUp).Row If WS.Range("B5").Value = "" Then derligne = WS.Range("B5000").End(xlUp).Row Else derligne = WS.Range("B5000").End(xlUp).Row + 1 End If For ligne = 19 To 40 If Cells(ligne, 3).Value <> "" Then WS.Range("B" & derligne).Value = Range("G15").Value WS.Range("C" & derligne).Value = Range("G13").Value WS.Range("D" & derligne).Value = Range("D13").Value WS.Range("E" & derligne).Value = Cells(ligne, 3).Value WS.Range("F" & derligne).Value = Cells(ligne, 4).Value WS.Range("G" & derligne).Value = Cells(ligne, 5).Value WS.Range("H" & derligne).Value = Cells(ligne, 6).Value WS.Range("I" & derligne).Value = Range("D15").Value WS.Range("J" & derligne).Value = Cells(ligne, 7).Value WS.Range("K" & derligne).Value = Cells(ligne, 8).Value derligne = derligne + 1 End If Next Range("G15").Value = Range("G15").Value + 1 Range("G15").Value = "" Range("G13").Value = "" Range("D13").Value = "" Range("D15").Value = "" Range("E19").Value = "" Range("E20").Value = "" Range("E21").Value = "" Range("E22").Value = "" Range("F19").Value = "" Range("F20").Value = "" Range("F21").Value = "" Range("F22").Value = "" Range("G19").Value = "" Range("G20").Value = "" Range("G21").Value = "" Range("G22").Value = "" Range("H19").Value = "" Range("H20").Value = "" Range("H21").Value = "" Range("H22").Value = "" Sheets("Saisie").Range("C19:C40").ClearContents Sheets("Saisie").Range("E19:E40").ClearContents Sheets("Saisie").Range("F19:F40").ClearContents Sheets("Saisie").Range("G19:G40").ClearContents Sheets("Saisie").Range("H19:H40").ClearContents End If End Sub
Partager