Bonjour à toutes et tous,
Peut-être quelqu'un pouura me donner un tuyau pour accelerer cette procédure :
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
Private Sub Worksheet_Activate()
Dim x As Integer, y As Range, z As Integer, lg As Integer, nblg As Integer
Dim result As Double
'--------------------------------------------------------------------------
lg = Worksheets("saisies").Range("d1001").End(xlUp).Row 'feuille des saises
 
With Worksheets("VENTILATION") 'feuille pour recapitulation
nblg = .Range("a" & Rows.Count).End(xlUp).Row
For x = 2 To nblg
.Range("A" & x, "B" & x).Select
If Selection.MergeCells = False Then 'si la cellule n'est pas fusionnée
    Set y = Worksheets("saisies").Range("e2:e" & lg)
    .Range("B" & x).Select
    For z = 2 To nblg
    result = Application.SumIf(y, .Range("a" & z), Worksheets("saisies").Range("o2:o" & lg))
    .Range("b" & z) = result
    Next z
Else
    Set y = Worksheets("saisies").Range("n2:n" & lg)
    For z = 2 To nblg
    result = Application.SumIf(y, .Range("a" & z), Worksheets("saisies").Range("o2:o" & lg))
    .Range("c" & z) = result
 
    Next z
End If
Next x
End With
End Sub
le programme repasse toutes les cellules en revue de la feuille "ventilation" et donc met du temps
la feuille "ventilation" en copie


Merci de vos réponses