Bonjour,
J'ai voulu faire une double boucle pour supprimer les éléments d'une collection. La suppression d'un élément d'une collection réduit automatiquement le nombre d'éléments et les numéros d'index et peut entraîne une erreur.
Après avoir réfléchis à une solution et n'ayant rien trouvé, j'ai contourner le problème avec un "On Error Resume Next".
Auriez-vous une solution plus élégante à me suggérer ?
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 On Error Resume Next With ReportingPeriodCollection For i = .Count To 1 Step -1 For j = .Count To 1 Step -1 If i <> j And .Item(i).PeriodYear = .Item(j).PeriodYear Then Select Case .Item(i).PeriodYear Case Is <> YearEndPeriod If .Item(i).AnnualFactor = 1 Then .Remove (j) Else .Remove (i) End If Case YearEndPeriod If .Item(i).AnnualFactor > .Item(j).AnnualFactor Then .Remove (i) Else .Remove (j) End If End Select Cpt = Cpt + 1 End If Next j Next i End With








Répondre avec citation
Partager