Bonjour à toutes et tous,
Peut-être quelqu'un pouura me donner un tuyau pour accelerer cette procédure :
le programme repasse toutes les cellules en revue de la feuille "ventilation" et donc met du temps
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
la feuille "ventilation" en copie
Merci de vos réponses
Partager