Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

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,...
 

deb_38

XLDnaute Nouveau
Pour une matrice plus grande et un N plus grand, le fichier me prends 5 minutes en temps d'exécution.
J'aimerai modifier tout ce qui copier coller en des instructions par tableau ou avec des formules VBA.
 

Discussions similaires

Réponses
4
Affichages
451
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…