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