Dans le fichier attacher je voudrait une formule en D8 pour trouver la Long/Lat (G2:G87) la plus près de la sélection faite en B8 et C8.
http://cjoint.com/?lBrNIpYZwx Merci
Bonsoir,
A tester ..
Sub test() subd = Sheets("GPS").Range("B8") pmil = Sheets("GPS").Range("C8") Sheets("GPS").Range("D8") = cherche(subd, pmil) End Sub
Public Function cherche(subd, pmil) Set liste = Sheets("GPS").Range("G1:G65000") diff = 1000000000#: lig = -1 For Each celle In liste If celle.Offset(0, -2).Text = subd Then vale = celle.Offset(0, -1) If (Abs(vale - pmil)) < diff Then diff = Abs(vale - pmil): lig = celle.Row End if End If Next celle If lig > -1 Then cherche = Intersect(liste, Rows(lig)) End Function
@+ FxM
pellet15 wrote:
Bonjour à Tous
Dans le fichier attacher je voudrait une formule en D8
pour trouver la Long/Lat (G2:G87) la plus près de la sélection faite
en
B8 et C8.
http://cjoint.com/?lBrNIpYZwx
Merci
Bonsoir,
A tester ..
Sub test()
subd = Sheets("GPS").Range("B8")
pmil = Sheets("GPS").Range("C8")
Sheets("GPS").Range("D8") = cherche(subd, pmil)
End Sub
Public Function cherche(subd, pmil)
Set liste = Sheets("GPS").Range("G1:G65000")
diff = 1000000000#: lig = -1
For Each celle In liste
If celle.Offset(0, -2).Text = subd Then
vale = celle.Offset(0, -1)
If (Abs(vale - pmil)) < diff Then
diff = Abs(vale - pmil): lig = celle.Row
End if
End If
Next celle
If lig > -1 Then cherche = Intersect(liste, Rows(lig))
End Function
Dans le fichier attacher je voudrait une formule en D8 pour trouver la Long/Lat (G2:G87) la plus près de la sélection faite en B8 et C8.
http://cjoint.com/?lBrNIpYZwx Merci
Bonsoir,
A tester ..
Sub test() subd = Sheets("GPS").Range("B8") pmil = Sheets("GPS").Range("C8") Sheets("GPS").Range("D8") = cherche(subd, pmil) End Sub
Public Function cherche(subd, pmil) Set liste = Sheets("GPS").Range("G1:G65000") diff = 1000000000#: lig = -1 For Each celle In liste If celle.Offset(0, -2).Text = subd Then vale = celle.Offset(0, -1) If (Abs(vale - pmil)) < diff Then diff = Abs(vale - pmil): lig = celle.Row End if End If Next celle If lig > -1 Then cherche = Intersect(liste, Rows(lig)) End Function
@+ FxM
pellet15
Bonsoir FxM
J'ai incorporer t'a réponce dans le fichier attacher mais elle ne fonctionne pas :-((
peut tu regarder ou est l'erreur. http://cjoint.com/?lCbOeMiOjZ
Merci
Bonsoir FxM
J'ai incorporer t'a réponce dans le fichier attacher mais
elle ne fonctionne pas :-((
peut tu regarder ou est l'erreur.
http://cjoint.com/?lCbOeMiOjZ
J'ai incorporer t'a réponce dans le fichier attacher mais elle ne fonctionne pas :-((
peut tu regarder ou est l'erreur. http://cjoint.com/?lCbOeMiOjZ
Merci
Bonjour,
Dans la fonction perso cherche(...), remplace : Set liste = Sheets("Donne").Range("AQ2:AQ65000") par Set liste = Sheets("Donne").Range("AR2:AR65000")
@+ FxM
Modeste
Bonsour®
peut tu regarder ou est l'erreur. http://cjoint.com/?lCbOeMiOjZ j'ai pas trop compris l'objet de la question ... ni ce qu'a voulu faire le
"cramayot" ???
alors j'ai fait ça : ;o))) http://cjoint.com/?lCvcABuj2l
liste de choix Pmil dépendante de la subdivision sélectionnée (voir : nom definir ChoixPmil , utilisation de la fonction Décaler pour actualiser la liste de meme pour definir dynamiquement la plage Subd)
puis affichage SUR le graphe de la position cherchée. Affichage des coordonnées du point cherché avec hyperlien Maps google et sans macro ... na...!!! ;o)))
@+ -- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Bonsour®
peut tu regarder ou est l'erreur.
http://cjoint.com/?lCbOeMiOjZ
j'ai pas trop compris l'objet de la question ... ni ce qu'a voulu faire le
"cramayot" ???
alors j'ai fait ça :
;o)))
http://cjoint.com/?lCvcABuj2l
liste de choix Pmil dépendante de la subdivision sélectionnée
(voir : nom definir ChoixPmil ,
utilisation de la fonction Décaler pour actualiser la liste
de meme pour definir dynamiquement la plage Subd)
puis affichage SUR le graphe de la position cherchée.
Affichage des coordonnées du point cherché avec hyperlien Maps google
et sans macro ... na...!!!
;o)))
@+
--
les news pas à jour ?? ne passez plus par votre FAI, les news à la source
!!!
placez ce raccourci dans la ligne de commande
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
peut tu regarder ou est l'erreur. http://cjoint.com/?lCbOeMiOjZ j'ai pas trop compris l'objet de la question ... ni ce qu'a voulu faire le
"cramayot" ???
alors j'ai fait ça : ;o))) http://cjoint.com/?lCvcABuj2l
liste de choix Pmil dépendante de la subdivision sélectionnée (voir : nom definir ChoixPmil , utilisation de la fonction Décaler pour actualiser la liste de meme pour definir dynamiquement la plage Subd)
puis affichage SUR le graphe de la position cherchée. Affichage des coordonnées du point cherché avec hyperlien Maps google et sans macro ... na...!!! ;o)))
@+ -- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
pellet15
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 FxM
ok cela fonctionne mais très lent.
je le transfer dans mon fichier principal,il y a 10 foix plus de donner
:-((
Merci
je le transfer dans mon fichier principal,il y a 10 foix plus de donner :-(( Merci
pellet15
Bonsoir Modeste
Le but est d'entré un millage et une Subd et de trouver la Lon/Lat le plus près du mille. On sélectionne la Subd et ont inscrie le mille désirer et je voudrait qu'une fenêtre souvre et me demande ci je veut exécuté la macro "nRoute" ou "MapsGoogle".
Merci
Bonsoir Modeste
Le but est d'entré un millage et une Subd et de trouver la Lon/Lat
le plus près du mille.
On sélectionne la Subd et ont inscrie le mille désirer et je
voudrait qu'une fenêtre
souvre et me demande ci je veut exécuté la macro "nRoute" ou
"MapsGoogle".
Le but est d'entré un millage et une Subd et de trouver la Lon/Lat le plus près du mille. On sélectionne la Subd et ont inscrie le mille désirer et je voudrait qu'une fenêtre souvre et me demande ci je veut exécuté la macro "nRoute" ou "MapsGoogle".
Merci
Modeste
Bonsour® pellet15 wrote:
Le but est d'entré un millage et une Subd et de trouver la Lon/Lat le plus près du mille. On sélectionne la Subd et ont inscrie le mille désirer et je voudrait qu'une fenêtre souvre et me demande ci je veut exécuté la macro "nRoute" ou "MapsGoogle".
l'exemple que j'ai fourni : choix d'une Subdivision dans la liste (Butler, St-Hyacinte, Raccordement, Montreal, Kingston) puis choix DANS LA LISTE d'un millage (parmi les millages appartenant à cette subdivision) provoque l'affichage des coordonnées de ce millage (zone bleu ciel $AO$1 ) un double-click sur cette zone execute la macro MapsGoogle.
je pense que ceci correspond à ta demande,
mais comme déja répondu précédement, je n'ai aucun idée de la façon dont ces millages sont calculés : ? distance sur la voie par rapport à un point d'origine ? quel est ce point d'origine Notament : dans la subdivision Montréal (si tel est cas!) , la succesion des millages n'est pas respectée !!! il y également superposition partielle des subdivisions Kingston et Montréal
le petit plus ;o))) j'ai ajouté une représentation graphique du réseau (limité aux données fournies) avec une couleur par subdivision et la position du millage choisi bien entendu l'échelle est non significative, mais je pense que les proportions sont correctes la difficulté due à l'étendue géographique du réseau fait qu'il est difficile de mettre une image en fond de plan
ce que j'avais fait dans ma réponse de septembre ;o)))
@+
-- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Bonsour®
pellet15 wrote:
Le but est d'entré un millage et une Subd et de trouver la Lon/Lat
le plus près du mille.
On sélectionne la Subd et ont inscrie le mille désirer et je
voudrait qu'une fenêtre
souvre et me demande ci je veut exécuté la macro "nRoute" ou
"MapsGoogle".
l'exemple que j'ai fourni :
choix d'une Subdivision dans la liste (Butler, St-Hyacinte, Raccordement,
Montreal, Kingston)
puis choix DANS LA LISTE d'un millage (parmi les millages appartenant à
cette subdivision)
provoque l'affichage des coordonnées de ce millage (zone bleu ciel $AO$1 )
un double-click sur cette zone execute la macro MapsGoogle.
je pense que ceci correspond à ta demande,
mais comme déja répondu précédement,
je n'ai aucun idée de la façon dont ces millages sont calculés :
? distance sur la voie par rapport à un point d'origine
? quel est ce point d'origine
Notament :
dans la subdivision Montréal (si tel est cas!) , la succesion des millages
n'est pas respectée !!!
il y également superposition partielle des subdivisions Kingston et Montréal
le petit plus ;o)))
j'ai ajouté une représentation graphique du réseau (limité aux données
fournies)
avec une couleur par subdivision
et la position du millage choisi
bien entendu l'échelle est non significative, mais je pense que les
proportions sont correctes
la difficulté due à l'étendue géographique du réseau fait qu'il est
difficile de mettre une image en fond de plan
ce que j'avais fait dans ma réponse de septembre ;o)))
@+
--
les news pas à jour ?? ne passez plus par votre FAI, les news à la source
!!!
placez ce raccourci dans la ligne de commande
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Le but est d'entré un millage et une Subd et de trouver la Lon/Lat le plus près du mille. On sélectionne la Subd et ont inscrie le mille désirer et je voudrait qu'une fenêtre souvre et me demande ci je veut exécuté la macro "nRoute" ou "MapsGoogle".
l'exemple que j'ai fourni : choix d'une Subdivision dans la liste (Butler, St-Hyacinte, Raccordement, Montreal, Kingston) puis choix DANS LA LISTE d'un millage (parmi les millages appartenant à cette subdivision) provoque l'affichage des coordonnées de ce millage (zone bleu ciel $AO$1 ) un double-click sur cette zone execute la macro MapsGoogle.
je pense que ceci correspond à ta demande,
mais comme déja répondu précédement, je n'ai aucun idée de la façon dont ces millages sont calculés : ? distance sur la voie par rapport à un point d'origine ? quel est ce point d'origine Notament : dans la subdivision Montréal (si tel est cas!) , la succesion des millages n'est pas respectée !!! il y également superposition partielle des subdivisions Kingston et Montréal
le petit plus ;o))) j'ai ajouté une représentation graphique du réseau (limité aux données fournies) avec une couleur par subdivision et la position du millage choisi bien entendu l'échelle est non significative, mais je pense que les proportions sont correctes la difficulté due à l'étendue géographique du réseau fait qu'il est difficile de mettre une image en fond de plan
ce que j'avais fait dans ma réponse de septembre ;o)))
@+
-- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Daniel
Bonsoir Modeste
L'idée est de'inscrire un mille rechercher pour après voir ou est cituer ce millage dans le programme "nRoute" ou dans "MapsGoogle". Merci
"Modeste" a écrit dans le message de news:
Bonsour® pellet15 wrote:
Le but est d'entré un millage et une Subd et de trouver la Lon/Lat le plus près du mille. On sélectionne la Subd et ont inscrie le mille désirer et je voudrait qu'une fenêtre souvre et me demande ci je veut exécuté la macro "nRoute" ou "MapsGoogle".
l'exemple que j'ai fourni : choix d'une Subdivision dans la liste (Butler, St-Hyacinte, Raccordement, Montreal, Kingston) puis choix DANS LA LISTE d'un millage (parmi les millages appartenant à cette subdivision) provoque l'affichage des coordonnées de ce millage (zone bleu ciel $AO$1 ) un double-click sur cette zone execute la macro MapsGoogle.
je pense que ceci correspond à ta demande,
mais comme déja répondu précédement, je n'ai aucun idée de la façon dont ces millages sont calculés : ? distance sur la voie par rapport à un point d'origine ? quel est ce point d'origine Notament : dans la subdivision Montréal (si tel est cas!) , la succesion des millages n'est pas respectée !!! il y également superposition partielle des subdivisions Kingston et Montréal
le petit plus ;o))) j'ai ajouté une représentation graphique du réseau (limité aux données fournies) avec une couleur par subdivision et la position du millage choisi bien entendu l'échelle est non significative, mais je pense que les proportions sont correctes la difficulté due à l'étendue géographique du réseau fait qu'il est difficile de mettre une image en fond de plan
ce que j'avais fait dans ma réponse de septembre ;o)))
@+
-- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Bonsoir Modeste
L'idée est de'inscrire un mille rechercher pour après voir ou est cituer ce
millage
dans le programme "nRoute" ou dans "MapsGoogle".
Merci
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
eSIsX7M9FHA.3880@TK2MSFTNGP12.phx.gbl...
Bonsour®
pellet15 wrote:
Le but est d'entré un millage et une Subd et de trouver la Lon/Lat
le plus près du mille.
On sélectionne la Subd et ont inscrie le mille désirer et je
voudrait qu'une fenêtre
souvre et me demande ci je veut exécuté la macro "nRoute" ou
"MapsGoogle".
l'exemple que j'ai fourni :
choix d'une Subdivision dans la liste (Butler, St-Hyacinte, Raccordement,
Montreal, Kingston)
puis choix DANS LA LISTE d'un millage (parmi les millages appartenant à
cette subdivision)
provoque l'affichage des coordonnées de ce millage (zone bleu ciel $AO$1 )
un double-click sur cette zone execute la macro MapsGoogle.
je pense que ceci correspond à ta demande,
mais comme déja répondu précédement,
je n'ai aucun idée de la façon dont ces millages sont calculés :
? distance sur la voie par rapport à un point d'origine
? quel est ce point d'origine
Notament :
dans la subdivision Montréal (si tel est cas!) , la succesion des
millages n'est pas respectée !!!
il y également superposition partielle des subdivisions Kingston et
Montréal
le petit plus ;o)))
j'ai ajouté une représentation graphique du réseau (limité aux données
fournies)
avec une couleur par subdivision
et la position du millage choisi
bien entendu l'échelle est non significative, mais je pense que les
proportions sont correctes
la difficulté due à l'étendue géographique du réseau fait qu'il est
difficile de mettre une image en fond de plan
ce que j'avais fait dans ma réponse de septembre ;o)))
@+
--
les news pas à jour ?? ne passez plus par votre FAI, les news à la source
!!!
placez ce raccourci dans la ligne de commande
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
L'idée est de'inscrire un mille rechercher pour après voir ou est cituer ce millage dans le programme "nRoute" ou dans "MapsGoogle". Merci
"Modeste" a écrit dans le message de news:
Bonsour® pellet15 wrote:
Le but est d'entré un millage et une Subd et de trouver la Lon/Lat le plus près du mille. On sélectionne la Subd et ont inscrie le mille désirer et je voudrait qu'une fenêtre souvre et me demande ci je veut exécuté la macro "nRoute" ou "MapsGoogle".
l'exemple que j'ai fourni : choix d'une Subdivision dans la liste (Butler, St-Hyacinte, Raccordement, Montreal, Kingston) puis choix DANS LA LISTE d'un millage (parmi les millages appartenant à cette subdivision) provoque l'affichage des coordonnées de ce millage (zone bleu ciel $AO$1 ) un double-click sur cette zone execute la macro MapsGoogle.
je pense que ceci correspond à ta demande,
mais comme déja répondu précédement, je n'ai aucun idée de la façon dont ces millages sont calculés : ? distance sur la voie par rapport à un point d'origine ? quel est ce point d'origine Notament : dans la subdivision Montréal (si tel est cas!) , la succesion des millages n'est pas respectée !!! il y également superposition partielle des subdivisions Kingston et Montréal
le petit plus ;o))) j'ai ajouté une représentation graphique du réseau (limité aux données fournies) avec une couleur par subdivision et la position du millage choisi bien entendu l'échelle est non significative, mais je pense que les proportions sont correctes la difficulté due à l'étendue géographique du réseau fait qu'il est difficile de mettre une image en fond de plan
ce que j'avais fait dans ma réponse de septembre ;o)))
@+
-- les news pas à jour ?? ne passez plus par votre FAI, les news à la source !!! placez ce raccourci dans la ligne de commande news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ : http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
FxM
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)
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)
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)
Daniel
Bonsoir FxM
c'est ok 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
c'est ok
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)
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)