Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

un seul critère de recherche

2 réponses
Avatar
pellet15
Bonsoir =E0 tous
Dans la proc=E9dure suivante il y a deux crit=E8re de recherche et je
voudrait =E9liminer le premier
( subd ).
pour que seulement ( pmil ) soit utiliser .

Que dois-je modifier ??
Merci

Sub recherche_PMil()
subd =3D Sheets("GPS").Range("B2")
pmil =3D Sheets("GPS").Range("C2")
Sheets("GPS").Range("D2") =3D cherche(subd, pmil)
ActiveSheet.Protect "cn178174", DrawingObjects:=3DFalse,
Contents:=3DTrue, Scenarios:=3DTrue
End Sub

Public Function cherche(subd, pmil)
derlig =3D Sheets("GPS").Cells.Find("*", [A1], , , xlByRows,
xlPrevious).Row
Set liste =3D Sheets("GPS").Range("G2:G" & derlig)
diff =3D 1000000000#: lig =3D -1: rep =3D 0
T1 =3D Now
For Each celle In liste
Application.StatusBar =3D Format((Now - T1) * 86400, "#")
If celle.Offset(0, -2) =3D subd Then
vale =3D celle.Offset(0, -1): rep =3D rep + 1
If (Abs(vale - pmil)) < diff Then
diff =3D Abs(vale - pmil): lig =3D celle.Row: rep =3D 0
End If
End If
If rep > 10 Then Exit For
Next celle
If lig > -1 Then cherche =3D Intersect(liste, Rows(lig))
Application.StatusBar =3D False
End Function

2 réponses

Avatar
LSteph
Bonjour,

Sur ce qu'on peut voir, c'est bien trop flou sans voir à quoi cela
correspond dans ton classeur,
a priori ce code n'utilise pas pmil pour la recherche.
C'est subd qui est recherché .pmil semble utilisé dans la restitution.

Cordialemement.

--
LSteph

On 28 juin, 02:37, pellet15 wrote:
Bonsoir à tous
Dans la procédure suivante il y a deux critère de recherche et je
voudrait  éliminer le premier
 (  subd ).
pour que seulement  (  pmil  )  soit utiliser .

Que dois-je modifier ??
Merci

Sub recherche_PMil()
 subd = Sheets("GPS").Range("B2")
 pmil = Sheets("GPS").Range("C2")
 Sheets("GPS").Range("D2") = cherche(subd, pmil)
     ActiveSheet.Protect "cn178174", DrawingObjects:úlse,
Contents:=True, Scenarios:=True
End Sub

Public Function cherche(subd, pmil)
 derlig = Sheets("GPS").Cells.Find("*", [A1], , , xlByRows,
xlPrevious).Row
 Set liste = Sheets("GPS").Range("G2:G" & derlig)
 diff = 1000000000#: lig = -1: rep = 0
 T1 = Now
 For Each celle In liste
  Application.StatusBar = Format((Now - T1) * 86400, "#")
  If celle.Offset(0, -2) = 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))
 Application.StatusBar = False
End Function
Avatar
pellet15
On 28 juin, 06:34, LSteph wrote:
Bonjour,

Sur ce qu'on peut voir, c'est bien trop flou sans voir à quoi cela
correspond dans ton classeur,
a priori  ce code n'utilise pas pmil pour la recherche.
C'est subd qui est recherché .pmil semble utilisé dans la restitution .

Cordialemement.

--
LSteph

On 28 juin, 02:37, pellet15 wrote:



> Bonsoir à tous
> Dans la procédure suivante il y a deux critère de recherche et je
> voudrait  éliminer le premier
>  (  subd ).
> pour que seulement  (  pmil  )  soit utiliser .

> Que dois-je modifier ??
> Merci

> Sub recherche_PMil()
>  subd = Sheets("GPS").Range("B2")
>  pmil = Sheets("GPS").Range("C2")
>  Sheets("GPS").Range("D2") = cherche(subd, pmil)
>      ActiveSheet.Protect "cn178174", DrawingObjects:úlse,
> Contents:=True, Scenarios:=True
> End Sub

> Public Function cherche(subd, pmil)
>  derlig = Sheets("GPS").Cells.Find("*", [A1], , , xlByRows,
> xlPrevious).Row
>  Set liste = Sheets("GPS").Range("G2:G" & derlig)
>  diff = 1000000000#: lig = -1: rep = 0
>  T1 = Now
>  For Each celle In liste
>   Application.StatusBar = Format((Now - T1) * 86400, "#")
>   If celle.Offset(0, -2) = 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))
>  Application.StatusBar = False
> End Function- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -




Bonjour LSteph

Lorsque j'inscrie la Subd en B2 et pmil en C2 j'obtien Long/lat en
D2.

je voudrait plus utiliser la Subd critere B2
inscrire pmil en C2 et apres exécution avoir la réponce en D2........

Le tableau est comme celui la :
Subd pmil long/lat
Col.B2------- C2---------------D2--------
Butler 0,02 ???????????????


col. E--------------F-----------------------G
Ligne 2 Butler 0,01 N45.48756 W73.54134
Ligne 3 Butler 0,01 N45.48754 W73.54139
Ligne 4 Butler 0,01 N45.48752 W73.54144
Ligne 5 Butler 0,02 N45.48750 W73.54150
Ligne 6 Butler 0,02 N45.48747 W73.54155
Ligne 7 Butler 0,02 N45.48745 W73.54160
Ligne 8 Butler 0,03 N45.48743 W73.54164
Ligne 9 Butler 0,03 N45.48740 W73.54169
Ligne 10 Butler 0,03 N45.48738 W73.54173
Ligne 11 Butler 0,03 N45.48736 W73.54177
ect jusqua la ligne 5184