J'ai fait un fichier avec 32569 donné GPS Lorsque je fait une recherche cela prend 2 minute avant d'avoir une réponce. Je voudrait te faire parvenir mon fichier (1.44zipé) .
Fait moi parvenir t'on courriel à (pas d'espace) "pellet15 @vidéotron.ca"
Merci
"FxM" a écrit dans le message de news:
pellet15 wrote:
Bonsoir FxM
ok cela fonctionne mais très lent.
je le transfer dans mon fichier principal,il y a 10 foix plus de donner :-(( Merci
Bonsoir,
Excuses-moi du délai, je rentre de déplacement. D'ailleurs, il vaut mieux ne pas s'absenter ... 895 messages en 4 jours sur MPFE !
Ceci étant dit, si tu es sûr que tes 'subd' sont regroupés et qu'il n'y a donc pas d'isolés, tu peux terminer la boucle beaucoup plus rapidement. C'est l'objet de la variable 'rep' rajoutée ci-dessous en plusieurs endroits. Le 'if rep > 10' laisse une petite tolérance ;o)
Teste et dis-moi.
@+ FxM
Public Function cherche(subd, pmil) Set liste = Sheets("Donne").Range("AR2:AR65000") diff = 1000000000#: lig = -1: rep = 0 For Each celle In liste If celle.Offset(0, -2).Text = subd Then vale = celle.Offset(0, -1): rep = rep + 1 If (Abs(vale - pmil)) < diff Then diff = Abs(vale - pmil): lig = celle.Row: rep = 0 End If End If If rep > 10 Then Exit For Next celle If lig > -1 Then cherche = Intersect(liste, Rows(lig)) End Function
PS pour AV : Alain, n'aurais-tu pas un petit .find (que je ne maîtrise pas du tout) en stock ? :o)
Bonsoir FxM
J'ai fait un fichier avec 32569 donné GPS
Lorsque je fait une recherche cela prend 2 minute avant d'avoir une réponce.
Je voudrait te faire parvenir mon fichier (1.44zipé) .
Fait moi parvenir t'on courriel à (pas d'espace) "pellet15
@vidéotron.ca"
Merci
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
uDKzgE59FHA.160@TK2MSFTNGP12.phx.gbl...
pellet15 wrote:
Bonsoir FxM
ok cela fonctionne mais très lent.
je le transfer dans mon fichier principal,il y a 10 foix plus de donner
:-((
Merci
Bonsoir,
Excuses-moi du délai, je rentre de déplacement. D'ailleurs, il vaut mieux
ne pas s'absenter ... 895 messages en 4 jours sur MPFE !
Ceci étant dit, si tu es sûr que tes 'subd' sont regroupés et qu'il n'y a
donc pas d'isolés, tu peux terminer la boucle beaucoup plus rapidement.
C'est l'objet de la variable 'rep' rajoutée ci-dessous en plusieurs
endroits. Le 'if rep > 10' laisse une petite tolérance ;o)
Teste et dis-moi.
@+
FxM
Public Function cherche(subd, pmil)
Set liste = Sheets("Donne").Range("AR2:AR65000")
diff = 1000000000#: lig = -1: rep = 0
For Each celle In liste
If celle.Offset(0, -2).Text = subd Then
vale = celle.Offset(0, -1): rep = rep + 1
If (Abs(vale - pmil)) < diff Then
diff = Abs(vale - pmil): lig = celle.Row: rep = 0
End If
End If
If rep > 10 Then Exit For
Next celle
If lig > -1 Then cherche = Intersect(liste, Rows(lig))
End Function
PS pour AV : Alain, n'aurais-tu pas un petit .find (que je ne maîtrise pas
du tout) en stock ? :o)
J'ai fait un fichier avec 32569 donné GPS Lorsque je fait une recherche cela prend 2 minute avant d'avoir une réponce. Je voudrait te faire parvenir mon fichier (1.44zipé) .
Fait moi parvenir t'on courriel à (pas d'espace) "pellet15 @vidéotron.ca"
Merci
"FxM" a écrit dans le message de news:
pellet15 wrote:
Bonsoir FxM
ok cela fonctionne mais très lent.
je le transfer dans mon fichier principal,il y a 10 foix plus de donner :-(( Merci
Bonsoir,
Excuses-moi du délai, je rentre de déplacement. D'ailleurs, il vaut mieux ne pas s'absenter ... 895 messages en 4 jours sur MPFE !
Ceci étant dit, si tu es sûr que tes 'subd' sont regroupés et qu'il n'y a donc pas d'isolés, tu peux terminer la boucle beaucoup plus rapidement. C'est l'objet de la variable 'rep' rajoutée ci-dessous en plusieurs endroits. Le 'if rep > 10' laisse une petite tolérance ;o)
Teste et dis-moi.
@+ FxM
Public Function cherche(subd, pmil) Set liste = Sheets("Donne").Range("AR2:AR65000") diff = 1000000000#: lig = -1: rep = 0 For Each celle In liste If celle.Offset(0, -2).Text = subd Then vale = celle.Offset(0, -1): rep = rep + 1 If (Abs(vale - pmil)) < diff Then diff = Abs(vale - pmil): lig = celle.Row: rep = 0 End If End If If rep > 10 Then Exit For Next celle If lig > -1 Then cherche = Intersect(liste, Rows(lig)) End Function
PS pour AV : Alain, n'aurais-tu pas un petit .find (que je ne maîtrise pas du tout) en stock ? :o)
FxM
Un petit suivi des derniers échanges avec Daniel :
Avec le fichier original, une recherche prenait environ 79 secondes. Pour la même recherche, ce temps tombe presque instantanément à 2 secondes en remplaçant :
If celle.Offset(0, -2).Text = subd Then par
If celle.Offset(0, -2) = subd Then
Comme quoi Excel est un tableur et n'aime pas le '.text' ... OK, je sors :o)
@+ FxM
Daniel wrote:
Bonsoir FxM
J'ai fait un fichier avec 32569 donné GPS Lorsque je fait une recherche cela prend 2 minute avant d'avoir une réponce. Je voudrait te faire parvenir mon fichier (1.44zipé) .
Fait moi parvenir t'on courriel à (pas d'espace) "pellet15 @vidéotron.ca"
Merci
"FxM" a écrit dans le message de news:
pellet15 wrote:
Bonsoir FxM
ok cela fonctionne mais très lent.
je le transfer dans mon fichier principal,il y a 10 foix plus de donner :-(( Merci
Bonsoir,
Excuses-moi du délai, je rentre de déplacement. D'ailleurs, il vaut mieux ne pas s'absenter ... 895 messages en 4 jours sur MPFE !
Ceci étant dit, si tu es sûr que tes 'subd' sont regroupés et qu'il n'y a donc pas d'isolés, tu peux terminer la boucle beaucoup plus rapidement. C'est l'objet de la variable 'rep' rajoutée ci-dessous en plusieurs endroits. Le 'if rep > 10' laisse une petite tolérance ;o)
Teste et dis-moi.
@+ FxM
Public Function cherche(subd, pmil) Set liste = Sheets("Donne").Range("AR2:AR65000") diff = 1000000000#: lig = -1: rep = 0 For Each celle In liste If celle.Offset(0, -2).Text = subd Then vale = celle.Offset(0, -1): rep = rep + 1 If (Abs(vale - pmil)) < diff Then diff = Abs(vale - pmil): lig = celle.Row: rep = 0 End If End If If rep > 10 Then Exit For Next celle If lig > -1 Then cherche = Intersect(liste, Rows(lig)) End Function
PS pour AV : Alain, n'aurais-tu pas un petit .find (que je ne maîtrise pas du tout) en stock ? :o)
Un petit suivi des derniers échanges avec Daniel :
Avec le fichier original, une recherche prenait environ 79 secondes.
Pour la même recherche, ce temps tombe presque instantanément à 2
secondes en remplaçant :
If celle.Offset(0, -2).Text = subd Then
par
If celle.Offset(0, -2) = subd Then
Comme quoi Excel est un tableur et n'aime pas le '.text'
... OK, je sors :o)
@+
FxM
Daniel wrote:
Bonsoir FxM
J'ai fait un fichier avec 32569 donné GPS
Lorsque je fait une recherche cela prend 2 minute avant d'avoir une réponce.
Je voudrait te faire parvenir mon fichier (1.44zipé) .
Fait moi parvenir t'on courriel à (pas d'espace) "pellet15
@vidéotron.ca"
Merci
"FxM" <nullos@greuchmeu.ici> a écrit dans le message de news:
uDKzgE59FHA.160@TK2MSFTNGP12.phx.gbl...
pellet15 wrote:
Bonsoir FxM
ok cela fonctionne mais très lent.
je le transfer dans mon fichier principal,il y a 10 foix plus de donner
:-((
Merci
Bonsoir,
Excuses-moi du délai, je rentre de déplacement. D'ailleurs, il vaut mieux
ne pas s'absenter ... 895 messages en 4 jours sur MPFE !
Ceci étant dit, si tu es sûr que tes 'subd' sont regroupés et qu'il n'y a
donc pas d'isolés, tu peux terminer la boucle beaucoup plus rapidement.
C'est l'objet de la variable 'rep' rajoutée ci-dessous en plusieurs
endroits. Le 'if rep > 10' laisse une petite tolérance ;o)
Teste et dis-moi.
@+
FxM
Public Function cherche(subd, pmil)
Set liste = Sheets("Donne").Range("AR2:AR65000")
diff = 1000000000#: lig = -1: rep = 0
For Each celle In liste
If celle.Offset(0, -2).Text = subd Then
vale = celle.Offset(0, -1): rep = rep + 1
If (Abs(vale - pmil)) < diff Then
diff = Abs(vale - pmil): lig = celle.Row: rep = 0
End If
End If
If rep > 10 Then Exit For
Next celle
If lig > -1 Then cherche = Intersect(liste, Rows(lig))
End Function
PS pour AV : Alain, n'aurais-tu pas un petit .find (que je ne maîtrise pas
du tout) en stock ? :o)
Un petit suivi des derniers échanges avec Daniel :
Avec le fichier original, une recherche prenait environ 79 secondes. Pour la même recherche, ce temps tombe presque instantanément à 2 secondes en remplaçant :
If celle.Offset(0, -2).Text = subd Then par
If celle.Offset(0, -2) = subd Then
Comme quoi Excel est un tableur et n'aime pas le '.text' ... OK, je sors :o)
@+ FxM
Daniel wrote:
Bonsoir FxM
J'ai fait un fichier avec 32569 donné GPS Lorsque je fait une recherche cela prend 2 minute avant d'avoir une réponce. Je voudrait te faire parvenir mon fichier (1.44zipé) .
Fait moi parvenir t'on courriel à (pas d'espace) "pellet15 @vidéotron.ca"
Merci
"FxM" a écrit dans le message de news:
pellet15 wrote:
Bonsoir FxM
ok cela fonctionne mais très lent.
je le transfer dans mon fichier principal,il y a 10 foix plus de donner :-(( Merci
Bonsoir,
Excuses-moi du délai, je rentre de déplacement. D'ailleurs, il vaut mieux ne pas s'absenter ... 895 messages en 4 jours sur MPFE !
Ceci étant dit, si tu es sûr que tes 'subd' sont regroupés et qu'il n'y a donc pas d'isolés, tu peux terminer la boucle beaucoup plus rapidement. C'est l'objet de la variable 'rep' rajoutée ci-dessous en plusieurs endroits. Le 'if rep > 10' laisse une petite tolérance ;o)
Teste et dis-moi.
@+ FxM
Public Function cherche(subd, pmil) Set liste = Sheets("Donne").Range("AR2:AR65000") diff = 1000000000#: lig = -1: rep = 0 For Each celle In liste If celle.Offset(0, -2).Text = subd Then vale = celle.Offset(0, -1): rep = rep + 1 If (Abs(vale - pmil)) < diff Then diff = Abs(vale - pmil): lig = celle.Row: rep = 0 End If End If If rep > 10 Then Exit For Next celle If lig > -1 Then cherche = Intersect(liste, Rows(lig)) End Function
PS pour AV : Alain, n'aurais-tu pas un petit .find (que je ne maîtrise pas du tout) en stock ? :o)