Exécution VBA troooop lente

Bonjour,

Je travaille sur une table excel de très grande taille (15000 lignes) et je dois exécuter une procédure sous vba pour effectuer un calcul du capital restant dû pour chaque client à une date précise ( chaque client a une échéance fixe par mois,une date de dernière échéance, une date de première échéance et le capital restant dû au 31/12/2012). j'ai fait la procédure suivante pour effectuer le calcul. Le problème que j'ai rencontré c'est que le calcul bloque si j'exécute pour plus de 300 clients ( lignes) sachant que pour chaque ligne on parcourt 1500 colonne (toutes les dates possibles de 01/01/2013 jusqu'à 31/12/2016) je pense que ce n'est pas pratique. L'objectif de ce travail est de d'offrir la possibilité de savoir le total du capital restant dû à une date donnée. Aviez des propositions pour faciliter la tache ?

Sub Calcul() 
Dim I, J, H As Integer 
Dim X As Variant 
For I = 2 To 15000
For J = 8 To 1500 
If Cells(I, 3).Value = Cells(1, J).Value And Cells(I, 4).Value < Cells(I, 5).Value Then 
Cells(I, J).Value = Cells(I, 4).Value 
Else 
If Cells(I, 7).Value = "4 Semaine" Then 
For T = 0 To 53 
X = Cells(I, 4).Value 
If Cells(1, J).Value = DateSerial(Year(Cells(I, 3).Value), Month(Cells(I, 3).Value), Day(Cells(I, 3).Value) - (T * 28)) And (X - (Cells(I, 6).Value - T) * Cells(I, 5).Value) > 0 And X > (X - (Cells(I, 6).Value - T) * Cells(I, 5).Value) Then 
Cells(I, J).Value = X - (Cells(I, 6).Value - T) * Cells(I, 5).Value 
End If 
Next T 
Else 
If Cells(I, 7).Value = "Quinzaine" Then 
For H = 0 To 53 
X = Cells(I, 4).Value 
If Cells(1, J).Value = DateSerial(Year(Cells(I, 3).Value), Month(Cells(I, 3).Value), Day(Cells(I, 3).Value) - (H * 14)) And (X - (Cells(I, 6).Value - H) * Cells(I, 5).Value) > 0 And X > (X - (Cells(I, 6).Value - T) * Cells(I, 5).Value) Then 
Cells(I, J).Value = X - (Cells(I, 6).Value - H) * Cells(I, 5).Value 
End If 
Next H 
End If 
End If 
End If 
Next J 
Next I 
End Sub

ci-joint la table excel.

Merci

Bonjour à tous,

Peux-tu joindre le fichier ? S'il est trop gros, essaie de l'alléger en enlevant des lignes ou en le compressant.

Rechercher des sujets similaires à "execution vba troooop lente"