une version plus optimisée
	
	
		Bonjour 
je te propose une version un peu plus optimisée bien que je n'ai pas testé je pense avoir restitué le travail souhaité
supprime toutes tes lignes que j'ai mis en comentaire et teste le :
	Code:
	
| 12
 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
 
 | Sub Check_Package_Argentine()
    Dim tablo50
    'Dim cf As CashFlow
    Dim sommeInterets
    'dim packageNumber As Double
    Dim i, j As Integer
    'Set listeCF = New Collection
    sommeInterets = 0
    Application.ScreenUpdating = False
    'passage en mode de calcul manuel
    Application.Calculation = xlManual
    Sheets("7-Argentine-OPU").Activate
    ReDim tablo50(50, 2)    '50 lignes et 2 colonnes
    For i = 1 To 50
        If Right(Cells(i, 9).Value, 3) = "AVA" Then
            'Set cf = New CashFlow
            ' cf.packageNumber = Range("F" & i).Value
            tablo50(i, 0) = Range("F" & i).Value
            'cf.montant = Range("Y" & i).Value
            'listeCF.Add cf
            tablo50(i, 1) = Range("Y" & i).Value
        End If
    Next i
    For i = 1 To UBound(tablo50)
        For j = i + 1 To UBound(tablo50)
                'montant(i) = cf(i).montant
            ' packageNumber(i) = cf(i).packageNumber
            'montant(j) = cf(j).montant
            'packageNumber(j) = cf(j).packageNumber
            sommeInterets = 0
            If tablo50(i, 0) = tablo50(i + 1, 0) And tablo50(i, 1) <> tablo50(i + 1, 1) Then
                'If (packageNumber(i) = packageNumber(j) And cf(i).montant <> cf(j).montant) Then
                'sommeInterets = sommeInterets + cf(i).montant + cf(j).montant
                sommeInterets = sommeInterets + tablo50(i, 1) + tablo50(i + 1, 1)
                'MsgBox "les intérêts du package argentine " & packageNumber(i) & " sont de " & sommeInterets
                MsgBox "les intérêts du package argentine " & tablo50(i, 0) & " sont de " & sommeInterets
            End If
       Next j
    Next i
End Sub | 
 
	 
	
	
	
		ma version finale à optimiser
	
	
		Je te joins ma version finale; dis moi ce que je peux optimiser au niveau du code.
Merci
	Code:
	
| 12
 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
 
 | Sub Check_Package_Argentine()
 
Dim cf As CashFlow
Dim sommeInterets, packageNumber, verif As Double
Dim i, j, k As Integer
Set listeCF = New Collection
 
sommeInterets = 0
verif = 0
Application.ScreenUpdating = False
 
'passage en mode de calcul manuel
Application.Calculation = xlManual
 
Sheets("7-Argentine-OPU").Activate
 
i = 4
 
While Cells(i, 9).Value <> ""
 
        If Right(Cells(i, 9).Value, 3) = "AVA" Then
 
            Set cf = New CashFlow
            cf.packageNumber = Range("F" & i).Value
            cf.montant = Range("Y" & i).Value
            listeCF.Add cf
 
        End If
 
        i = i + 1
 
Wend
 
For i = 1 To listeCF.Count
 
    For j = i + 1 To listeCF.Count
 
        If (listeCF(i).packageNumber = listeCF(j).packageNumber) Then
 
            sommeInterets = 0
            sommeInterets = sommeInterets + listeCF(i).montant + listeCF(j).montant
            MsgBox "les intérêts du package argentine " & listeCF(i).packageNumber & " sont de " & sommeInterets
 
            k = 4
            While Sheets("1-OperationsDuJour").Range("I" & k).Value <> listeCF(i).packageNumber
                k = k + 1
            Wend
 
            If Sheets("1-OperationsDuJour").Range("I" & k).Value = listeCF(i).packageNumber Then
                verif = (Sheets("1-OperationsDuJour").Range("U" & k).Value) + sommeInterets
                If Abs(verif) < 10 Then
                MsgBox "L'opération argentine du package " & listeCF(i).packageNumber & " correspond bien aux opérations avances, la somme du forward et des intérêts de l'opération est égale à " & verif & "!"
                Else
                MsgBox "Il n'y a pas de correspondance entre l'avance argentine et le forward associé au numéro de package " & listeCF(i).packageNumber & ", la somme du forward et des intérêts de l'opération est égale à " & verif & "!, vérifiez manuellement!"
                End If
            End If
 
        End If
 
    Next j
 
Next i
 
End Sub |