Réduire le temps d’exécution code VBA

Bonjour tout le monde,

J'ai mis un code VBA pour exploiter un TCD qui s'actualise quand je change la date dans le segment , et dans un tableau à coté via le code VBA je récupère la date filtrée et le nombre de "Numéro" qui ont subit que l'opération "C1".

mon code marche très bien (j'ai même ajouter un code dans la feuille du TCD pour lancer la macro si actualisation )sauf qu'il met du temps (dans cet exemple je n'ai pas beaucoup de ligne mais dans le fichier sur lequel je vais appliquer j'ai plusque 100000 lignes...).

Je vous serez reconnaissante si vous me proposer une amélioration à mon code afin que je puisse gagner du temps

Code:

Sub nbrop()

Application.ScreenUpdating = False

Dim i As Integer

Dim j As Integer

Dim k As Integer

Dim L As Integer

Dim compteur As Integer

Dim valdate As Boolean

i = 9

j = 2

k = 9

L = 9

compteur = 0

Sheets("NBR OP").Select

Sheets("NBR OP").Range("J2:J50").Select

Sheets("NBR OP").Range("J2:J50").Clear

Sheets("NBR OP").Range("K2:K50").Clear

While i < 36 And j < 36

valdate = IsDate(Sheets("NBR OP").Cells(i, 1).Value)

If valdate = True Then

Sheets("NBR OP").Cells(j, 10) = Sheets("NBR OP").Cells(i, 1).Value

L = 9

compteur = 0

While L < 20000

If Sheets("NBR OP").Cells(L, 1).Value = Sheets("NBR OP").Cells(j, 10).Value And Sheets("NBR OP").Cells(L, 2).Value <> "" And Sheets("NBR OP").Cells(L, 3).Value = "" And Sheets("NBR OP").Cells(L, 4).Value = "" Then compteur = compteur + 1

L = L + 1

Wend

Sheets("NBR OP").Cells(j, 11) = compteur

i = i + 1

j = j + 1

ElseIf valdate = False Then Exit Sub

End If

Wend

End Sub

Ci-joint le fichier Excel.

Très bonne journée

Lili

3exemple.xlsm (196.67 Ko)

Bonjour !

C'est vrai que ça réduit 'ache'ment le temps !...

Bonjour ThauThème ,

Je pense que j'ai loupé l'integralité de ton message,

lili

Rechercher des sujets similaires à "reduire temps execution code vba"