JORDAN
XLDnaute Impliqué
bonjour le Forum, tout le monde,
je n'arrive pas à comprendre pourquoi mon code ralentit au fur et à mesure
si je teste avec 10 lignes de recherches tout se passe bien mais
si il y a 100 lignes, la recherche est de plus en plus longue
avez vous une idée svp ? par avance merci
voici mon code :
je n'arrive pas à comprendre pourquoi mon code ralentit au fur et à mesure
si je teste avec 10 lignes de recherches tout se passe bien mais
si il y a 100 lignes, la recherche est de plus en plus longue
avez vous une idée svp ? par avance merci
voici mon code :
Code:
Option Explicit
Public RefProd As String
Public PxCession As Integer
Public Plage As Range
Private Sub CommandButton1_Click()
' Controle ZFAP
Dim I As Integer
Dim DernierZFAP As Integer
Application.ScreenUpdating = False
DernierZFAP = Range("C" & Rows.Count).End(xlUp).Row
For I = 2 To DernierZFAP
RefProd = Cells(I, 2)
Call cherche(RefProd, Plage)
Worksheets("Contrôle ZFAP").Select
Cells(I, 4) = Cells(I, 3) - PxCession
Cells(I, 5) = ((Cells(I, 3) - PxCession) / Cells(I, 3))
Next I
Application.ScreenUpdating = True
End Sub
Code:
Sub cherche(RefProd, Plage)
Dim C As Range
Dim LigneRes As Integer
Dim ColonneRes As Integer
Set C = Worksheets("ZPRT").Range("M1:M5000").Find(RefProd, LookIn:=xlValues, lookat:=xlWhole)
Worksheets("ZPRT").Select
If Not C Is Nothing Then
LigneRes = C.Row
ColonneRes = C.Column
PxCession = Worksheets("ZPRT").Cells(LigneRes, ColonneRes + 3).Value / Worksheets("ZPRT").Cells(LigneRes, ColonneRes + 4).Value
Else
MsgBox ("Référence non trouvée : " & RefProd)
PxCession = 1000
End If
Set C = Nothing
End Sub