Bonjour à tous !

J'ai concu une macro qui colorie des cases en fonction des jours si ils sont travaillés ou non... Cette macro fonctionne mais j'ai l'impression qu'elle est laborieuse.... Pour l'instant c'est juste une version d'essai sur une seule feuille et avec peu de données, et dans le futur tout va grossir...
A l'heure actuelle, la macro prends environ 7-8 sec alors je n'imagine pas à l'avenir....

Avez vous des idées pour optimiser ce 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
Sub color_calendar()
Sheets("calendrier").Range("B2:AQ30").Interior.ColorIndex = 0
 
dernlignetravail = Sheets("données").Range("A65536").End(xlUp).Row
dernligneconges = Sheets("données").Range("C65536").End(xlUp).Row
 
For i = 2 To 30
For j = 2 To 43
For kk = 3 To dernligneconges '= 5 ou 6 environ
For k = 3 To dernlignetravail ' = 5 ou 6 environ
 
If Sheets("calendrier").Cells(i, j) <= Sheets("données").Cells(k, 2) _
    And Cells(i, j) >= Sheets("données").Cells(k, 1) Then
       Sheets("calendrier").Cells(i, j).Interior.ColorIndex = 43
 
Else
 
If Sheets("calendrier").Cells(i, j) <= Sheets("données").Cells(kk, 4) _
    And Cells(i, j) >= Sheets("données").Cells(kk, 3) Then
       Sheets("calendrier").Cells(i, j).Interior.ColorIndex = 45
End If
End If
 
Next
Next
Next
Next
 
End Sub

Merci beaucoup de votre aide !!