Réduire temps d'exécution

deb_38

XLDnaute Nouveau
Bonjour,
Je suis débutante sur VBA, j'ai un code qui me prends du temps à s'exécuter.
Ci-joint un extrait, si vous pouvez m'aider à modifier quelques lignes qui sont couteuse en terme de temps d'exécution :

Do While D > D0

For i = 1 To N
j = Int(Rnd() * L+ 1)
indice= Application.WorksheetFunction.Match(Range("F" & i + 1), Sheets("feuil2").Range("A:A"), 0)
Range("E" & i + 1) = Sheets("feuil2").Cells(ligne, j).Value

If Range("B3") < 0 Then
Range("B1") = Range("B2")
Range("E2:E50").Select
Selection.Copy
Range("F2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
cpt = 0
Else
If Range("B3") > 0 Then
Range("K" & lp) = Range("B6") 'K : Paccept; B6 : La valeur de Paccept dans le tableau inital = 1.00
End If

Merci beaucoup
 

Jauster

XLDnaute Occasionnel
Hello et bienvenue,

Plusieurs petites choses :

1- Mettre son code au bon format sur le forum
upload_2018-7-24_15-31-5.png

2- Eviter les select/selection
ex :
VB:
Range("E2:E50").Select
Selection.Copy
peut s'écrire
VB:
Range("E2:E50").Copy

3- Difficile pour nous de t'aider de la bonne façon sans fichier :) + Le code n'est pas complet (déclaration des variables, j'ai l'impression qu'il manque des End If,...
upload_2018-7-24_15-32-40.png
 

Discussions similaires

Réponses
4
Affichages
419

Statistiques des forums

Discussions
314 654
Messages
2 111 598
Membres
111 215
dernier inscrit
fateh