OVH Cloud OVH Cloud

Mod - limite de capacité

4 réponses
Avatar
Gadget
Salut à tous.
Je cherche à vérifier la validité de clés Insee, et il semble que la
fonction MOD, que ce soit sous excel ou sous vba, n'accepte pas d'argument
de cette taille (nombre de 13 chiffres en premier argument). Est-ce normal?

Merci.

4 réponses

Avatar
Michel Gaboly
Bonjour,

Je n'avais jamais constaté cela, et cela ne paraît effectivement pas normal ;
on obtient #NOMBRE!

En entrant 1234567890123 en A1 et 96 en A2,

=MOD(A1;A2)

renvoie #NOMBRE! tandis que

¡ - (ENT(A1 / A2) * A2)

renvoie 75


On peut écrire la fonction suivante

Function ModGrandsNombres(A As Double, B As Double)
ModGrandsNombres = A - (Int(A / B) * B)
End Function

à appeler dans la feuille de calcul à la place de MOD()


NB - Il ne faut pas définir A et B comme Long, car limité pour les nombres
positifs à 2 147 483 647, c'est-à-dire 2^31 - 1.



Salut à tous.
Je cherche à vérifier la validité de clés Insee, et il semble que la
fonction MOD, que ce soit sous excel ou sous vba, n'accepte pas d'argument
de cette taille (nombre de 13 chiffres en premier argument). Est-ce normal?

Merci.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
Michel Gaboly
Re,

Complément : j'ai fait d'autres tests avec MOD(). Il semblerait que
MOD(A1;A2) renvoie #NOMBRE! lorsque

A1 / A2 est supérieur à 2 puissance 27 soit 134 217 728.

par exemple, avec en A1

1 125 899 906 842 620 (2 puissance 50 limité à une précision de
15 chiffres)

et en A2, 12 345 678

MOD(A1;A2) renvoie 11 512 102

Par conséquent de très grands nombres sont acceptés, c'est apparemment
leur quotient qui détermine le fonctionnement ou non de MOD()

Je n'ai aucune explication, malheureusement ;-(((



Bonjour,

Je n'avais jamais constaté cela, et cela ne paraît effectivement pas normal ;
on obtient #NOMBRE!

En entrant 1234567890123 en A1 et 96 en A2,

=MOD(A1;A2)

renvoie #NOMBRE! tandis que

¡ - (ENT(A1 / A2) * A2)

renvoie 75

On peut écrire la fonction suivante

Function ModGrandsNombres(A As Double, B As Double)
ModGrandsNombres = A - (Int(A / B) * B)
End Function

à appeler dans la feuille de calcul à la place de MOD()

NB - Il ne faut pas définir A et B comme Long, car limité pour les nombres
positifs à 2 147 483 647, c'est-à-dire 2^31 - 1.


Salut à tous.
Je cherche à vérifier la validité de clés Insee, et il semble que la
fonction MOD, que ce soit sous excel ou sous vba, n'accepte pas d'argument
de cette taille (nombre de 13 chiffres en premier argument). Est-ce normal?

Merci.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com


--
Cordialement,

Michel Gaboly
http://www.gaboly.com


Avatar
Gadget
Merci Michel pour tes précisions.
Peut-être un petit bug à signaler...


--
Carpe Diem Quam Minimum Credula Postera
Bicose
Sic Transit Gloria Mundi, et
Arx Tarpeia Capitoli Proxima !!
"Michel Gaboly" a écrit dans le message de
news:
Re,

Complément : j'ai fait d'autres tests avec MOD(). Il semblerait que
MOD(A1;A2) renvoie #NOMBRE! lorsque



Avatar
Michel Gaboly
De rien ;-))

Ce bug (ou cette fonctionnalité ?) doit être connu depuis longtemps
Après avoir posté mon message, j'ai fait une recherche sur les ar-
chives, en entrant MOD et bug.

Je suis tombé sur une intervention de Laurent Longre de janvier de
cette année, où il évoquait un message de 1998.

http://groups.google.fr/groups?selm623DBDB.4CBF%40wanadoo.fr&oe=UTF-8&output=gplain

Donc, nihil novo sub sole ;-)).



Merci Michel pour tes précisions.
Peut-être un petit bug à signaler...

--
Carpe Diem Quam Minimum Credula Postera
Bicose
Sic Transit Gloria Mundi, et
Arx Tarpeia Capitoli Proxima !!
"Michel Gaboly" a écrit dans le message de
news:
Re,

Complément : j'ai fait d'autres tests avec MOD(). Il semblerait que
MOD(A1;A2) renvoie #NOMBRE! lorsque




--
Cordialement,

Michel Gaboly
http://www.gaboly.com