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

RechercheV moins sensible au format

4 réponses
Avatar
abdou.bidool
Bonjour,

ce que je cherche =E0 faire est d'=E9crire une macro qui soit moins
sensible aux format que la fonction RechercheV.
Je fais donc la chose suivante :

Pour a dans ma colonne A
Pour b dans ma colonne B
Si Test(a,b)=3D True alors
Faire le traitement
Fin_Si
Fin_pour
Fin_pour

Pour tester l'egalit=E9 de a et b, j'ai essayer ceci :
a =3D b
a like b
Comp(a,b, vbTextCompare ) =3D 0 ,
Comp( CStr(a), CStr(b) , vbTextCompare )

En utilisant le debugger je m'aper=E7ois que dans la colonne
a =3D 6,578603060551E+17
b =3D 657860306055100000
Pourtant dans la colonne A, qd j'agrandi la colonne, j'ai a qui
s"affiche comme cela 657860306055100000

Je ne sais pas comment faire pour que a et b soit consider=E9 comme
=E9tant =E9gale alors que pour moi il le sont.

Merci pour votre aide.

4 réponses

Avatar
Leonello
Bonsoir,
En calculant a-b et en comparant à 0

Par exemple :
Si a-b < 1E-10 alors

--

Amicalement,
Leo

a écrit dans le message de news:

Bonjour,

ce que je cherche à faire est d'écrire une macro qui soit moins
sensible aux format que la fonction RechercheV.
Je fais donc la chose suivante :

Pour a dans ma colonne A
Pour b dans ma colonne B
Si Test(a,b)= True alors
Faire le traitement
Fin_Si
Fin_pour
Fin_pour

Pour tester l'egalité de a et b, j'ai essayer ceci :
a = b
a like b
Comp(a,b, vbTextCompare ) = 0 ,
Comp( CStr(a), CStr(b) , vbTextCompare )

En utilisant le debugger je m'aperçois que dans la colonne
a = 6,578603060551E+17
b = 657860306055100000
Pourtant dans la colonne A, qd j'agrandi la colonne, j'ai a qui
s"affiche comme cela 657860306055100000

Je ne sais pas comment faire pour que a et b soit consideré comme
étant égale alors que pour moi il le sont.

Merci pour votre aide.
Avatar
abdou.bidool
Oui ça pourrait etre une solution mais malheureusement j''ai aussi des
données textuel du genre "GCC-YIEb"
Du coup ça ne marche plus avec ce genre données, j'avais aussi pensé à
ça.

Merci pour la reponse.

On 24 juin, 23:21, "Leonello" wrote:
Bonsoir,
En calculant a-b et en comparant à 0

Par exemple :
Si a-b < 1E-10 alors

--

Amicalement,
Leo

a écrit dans le message de news:

Bonjour,

ce que je cherche à faire est d'écrire une macro qui soit moins
sensible aux format que la fonction RechercheV.
Je fais donc la chose suivante :

Pour a dans ma colonne A
Pour b dans ma colonne B
Si Test(a,b)= True alors
Faire le traitement
Fin_Si
Fin_pour
Fin_pour

Pour tester l'egalité de a et b, j'ai essayer ceci :
a = b
a like b
Comp(a,b, vbTextCompare ) = 0 ,
Comp( CStr(a), CStr(b) , vbTextCompare )

En utilisant le debugger je m'aperçois que dans la colonne
a = 6,578603060551E+17
b = 657860306055100000
Pourtant dans la colonne A, qd j'agrandi la colonne, j'ai a qui
s"affiche comme cela 657860306055100000

Je ne sais pas comment faire pour que a et b soit consideré comme
étant égale alors que pour moi il le sont.

Merci pour votre aide.


Avatar
isabelle
bonjour abdou,

If IsNumeric([A1]) And IsNumeric([A2]) Then x = 1 Else x = 2
Select Case x
Case 1: If [A1] - [A2] < 0.0000000001 Then y = "vrai" Else y = "faux"
Case 2: If [A1] = [A2] Then y = "vrai" Else y = "faux"
End Select

isabelle

Oui ça pourrait etre une solution mais malheureusement j''ai aussi des
données textuel du genre "GCC-YIEb"
Du coup ça ne marche plus avec ce genre données, j'avais aussi pensé à
ça.

Merci pour la reponse.

On 24 juin, 23:21, "Leonello" wrote:

Bonsoir,
En calculant a-b et en comparant à 0

Par exemple :
Si a-b < 1E-10 alors

--

Amicalement,
Leo

a écrit dans le message de news:

Bonjour,

ce que je cherche à faire est d'écrire une macro qui soit moins
sensible aux format que la fonction RechercheV.
Je fais donc la chose suivante :

Pour a dans ma colonne A
Pour b dans ma colonne B
Si Test(a,b)= True alors
Faire le traitement
Fin_Si
Fin_pour
Fin_pour

Pour tester l'egalité de a et b, j'ai essayer ceci :
a = b
a like b
Comp(a,b, vbTextCompare ) = 0 ,
Comp( CStr(a), CStr(b) , vbTextCompare )

En utilisant le debugger je m'aperçois que dans la colonne
a = 6,578603060551E+17
b = 657860306055100000
Pourtant dans la colonne A, qd j'agrandi la colonne, j'ai a qui
s"affiche comme cela 657860306055100000

Je ne sais pas comment faire pour que a et b soit consideré comme
étant égale alors que pour moi il le sont.

Merci pour votre aide.







Avatar
abdou.bidool
On 25 juin, 12:28, isabelle wrote:
bonjour abdou,

If IsNumeric([A1]) And IsNumeric([A2]) Then x = 1 Else x = 2
Select Case x
Case 1: If [A1] - [A2] < 0.0000000001 Then y = "vrai" Else y = "faux"
Case 2: If [A1] = [A2] Then y = "vrai" Else y = "faux"
End Select

isabelle


Effectivement, c'est pas con j'essaye.
Merci pour votre aide.