Hello,
pour calculer la clef du numéro de sécurité social, je dois faire les 13
premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
m'annonce un dépassement de capacité (je suis obligé de stocker les 13
chiffres dans une donnée de type double). existe t'il une feinte, ou
bien suis je compètement bloqué?
cdt
Thierry
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire les 13
premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
m'annonce un dépassement de capacité (je suis obligé de stocker les 13
chiffres dans une donnée de type double). existe t'il une feinte, ou
bien suis je compètement bloqué?
cdt
Thierry
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire les 13
premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
m'annonce un dépassement de capacité (je suis obligé de stocker les 13
chiffres dans une donnée de type double). existe t'il une feinte, ou
bien suis je compètement bloqué?
cdt
Thierry
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire les 13
premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
m'annonce un dépassement de capacité (je suis obligé de stocker les 13
chiffres dans une donnée de type double). existe t'il une feinte, ou
bien suis je compètement bloqué?
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire les 13
premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
m'annonce un dépassement de capacité (je suis obligé de stocker les 13
chiffres dans une donnée de type double). existe t'il une feinte, ou
bien suis je compètement bloqué?
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire les 13
premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
m'annonce un dépassement de capacité (je suis obligé de stocker les 13
chiffres dans une donnée de type double). existe t'il une feinte, ou
bien suis je compètement bloqué?
"thierry" a écrit dans le message de
news:
>
> Hello,
>
> pour calculer la clef du numéro de sécurité social, je dois faire les 13
> premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
> m'annonce un dépassement de capacité (je suis obligé de stocker les 13
> chiffres dans une donnée de type double). existe t'il une feinte, ou
> bien suis je compètement bloqué?
Hello,
Il suffit de savoir ce qu'est un modulo. Le modulo r d'un chiffre n,
c'est le reste de la division entière de n par r. Une fois ceci acquis,
nul besoin d'être grand druide pour en déduire:
resultat = (n mod r) = n - (INT(n/r)*r)
d'ou la fonction suivante et un exemple d'appel:
Option Explicit
Private Function CalculModulo97(n As String) As Integer
Dim v As Double
v = CDbl(n)
CalculModulo97 = v - Int(v / 97) * 97
End Function
Private Sub Command1_Click()
Dim result As Integer
Dim s As String
s = "2998567890123"
result = CalculModulo97(s)
MsgBox "le modulo 97 de " & s & " est : " & vbCrLf & result
End Sub
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
"thierry" <titi@laposte.net> a écrit dans le message de
news:GFr.1c196dc8c7c0cd679896f3@News.dial.oleane.com...
>
> Hello,
>
> pour calculer la clef du numéro de sécurité social, je dois faire les 13
> premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
> m'annonce un dépassement de capacité (je suis obligé de stocker les 13
> chiffres dans une donnée de type double). existe t'il une feinte, ou
> bien suis je compètement bloqué?
Hello,
Il suffit de savoir ce qu'est un modulo. Le modulo r d'un chiffre n,
c'est le reste de la division entière de n par r. Une fois ceci acquis,
nul besoin d'être grand druide pour en déduire:
resultat = (n mod r) = n - (INT(n/r)*r)
d'ou la fonction suivante et un exemple d'appel:
Option Explicit
Private Function CalculModulo97(n As String) As Integer
Dim v As Double
v = CDbl(n)
CalculModulo97 = v - Int(v / 97) * 97
End Function
Private Sub Command1_Click()
Dim result As Integer
Dim s As String
s = "2998567890123"
result = CalculModulo97(s)
MsgBox "le modulo 97 de " & s & " est : " & vbCrLf & result
End Sub
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
"thierry" a écrit dans le message de
news:
>
> Hello,
>
> pour calculer la clef du numéro de sécurité social, je dois faire les 13
> premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
> m'annonce un dépassement de capacité (je suis obligé de stocker les 13
> chiffres dans une donnée de type double). existe t'il une feinte, ou
> bien suis je compètement bloqué?
Hello,
Il suffit de savoir ce qu'est un modulo. Le modulo r d'un chiffre n,
c'est le reste de la division entière de n par r. Une fois ceci acquis,
nul besoin d'être grand druide pour en déduire:
resultat = (n mod r) = n - (INT(n/r)*r)
d'ou la fonction suivante et un exemple d'appel:
Option Explicit
Private Function CalculModulo97(n As String) As Integer
Dim v As Double
v = CDbl(n)
CalculModulo97 = v - Int(v / 97) * 97
End Function
Private Sub Command1_Click()
Dim result As Integer
Dim s As String
s = "2998567890123"
result = CalculModulo97(s)
MsgBox "le modulo 97 de " & s & " est : " & vbCrLf & result
End Sub
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
"thierry" a écrit dans le message de
news:
>
> Hello,
>
> pour calculer la clef du numéro de sécurité social, je dois faire les 13
> premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
> m'annonce un dépassement de capacité (je suis obligé de stocker les 13
> chiffres dans une donnée de type double). existe t'il une feinte, ou
> bien suis je compètement bloqué?
Hello,
Il suffit de savoir ce qu'est un modulo. Le modulo r d'un chiffre n,
c'est le reste de la division entière de n par r. Une fois ceci acquis,
nul besoin d'être grand druide pour en déduire:
resultat = (n mod r) = n - (INT(n/r)*r)
d'ou la fonction suivante et un exemple d'appel:
Option Explicit
Private Function CalculModulo97(n As String) As Integer
Dim v As Double
v = CDbl(n)
CalculModulo97 = v - Int(v / 97) * 97
End Function
Private Sub Command1_Click()
Dim result As Integer
Dim s As String
s = "2998567890123"
result = CalculModulo97(s)
MsgBox "le modulo 97 de " & s & " est : " & vbCrLf & result
End Sub
"thierry" <titi@laposte.net> a écrit dans le message de
news:GFr.1c196dc8c7c0cd679896f3@News.dial.oleane.com...
>
> Hello,
>
> pour calculer la clef du numéro de sécurité social, je dois faire les 13
> premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
> m'annonce un dépassement de capacité (je suis obligé de stocker les 13
> chiffres dans une donnée de type double). existe t'il une feinte, ou
> bien suis je compètement bloqué?
Hello,
Il suffit de savoir ce qu'est un modulo. Le modulo r d'un chiffre n,
c'est le reste de la division entière de n par r. Une fois ceci acquis,
nul besoin d'être grand druide pour en déduire:
resultat = (n mod r) = n - (INT(n/r)*r)
d'ou la fonction suivante et un exemple d'appel:
Option Explicit
Private Function CalculModulo97(n As String) As Integer
Dim v As Double
v = CDbl(n)
CalculModulo97 = v - Int(v / 97) * 97
End Function
Private Sub Command1_Click()
Dim result As Integer
Dim s As String
s = "2998567890123"
result = CalculModulo97(s)
MsgBox "le modulo 97 de " & s & " est : " & vbCrLf & result
End Sub
"thierry" a écrit dans le message de
news:
>
> Hello,
>
> pour calculer la clef du numéro de sécurité social, je dois faire les 13
> premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
> m'annonce un dépassement de capacité (je suis obligé de stocker les 13
> chiffres dans une donnée de type double). existe t'il une feinte, ou
> bien suis je compètement bloqué?
Hello,
Il suffit de savoir ce qu'est un modulo. Le modulo r d'un chiffre n,
c'est le reste de la division entière de n par r. Une fois ceci acquis,
nul besoin d'être grand druide pour en déduire:
resultat = (n mod r) = n - (INT(n/r)*r)
d'ou la fonction suivante et un exemple d'appel:
Option Explicit
Private Function CalculModulo97(n As String) As Integer
Dim v As Double
v = CDbl(n)
CalculModulo97 = v - Int(v / 97) * 97
End Function
Private Sub Command1_Click()
Dim result As Integer
Dim s As String
s = "2998567890123"
result = CalculModulo97(s)
MsgBox "le modulo 97 de " & s & " est : " & vbCrLf & result
End Sub
Salut,
Avec le double ou le Variant, moi, ça ne passe même pas 13 chiffres???
Faudrait voir du côté des mises en exposant, là je ne connais pas...
Dim Num As Double
Dim Reste As Double
Num = 1234567890123#
Reste = Num Mod 97
MsgBox Reste
' === dépasement de capacité...
Par contre mon n°SS, sa clef est 75, et si je cherche le reste de mon
n°SS(13 premiers chiffres) / 97 ça donne pas "75" en reste, mais alors pas
du tout!!! Pas au point...
Heu, pourquoi, ils t'ont donné le numéro mais pas la clef, les vaches, lol ?
---------
"thierry" a écrit dans le message de news:
>
> Hello,
>
> pour calculer la clef du numéro de sécurité social, je dois faire les 13
> premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
> m'annonce un dépassement de capacité (je suis obligé de stocker les 13
> chiffres dans une donnée de type double). existe t'il une feinte, ou
> bien suis je compètement bloqué?
>
> cdt
>
> Thierry
Salut,
Avec le double ou le Variant, moi, ça ne passe même pas 13 chiffres???
Faudrait voir du côté des mises en exposant, là je ne connais pas...
Dim Num As Double
Dim Reste As Double
Num = 1234567890123#
Reste = Num Mod 97
MsgBox Reste
' === dépasement de capacité...
Par contre mon n°SS, sa clef est 75, et si je cherche le reste de mon
n°SS(13 premiers chiffres) / 97 ça donne pas "75" en reste, mais alors pas
du tout!!! Pas au point...
Heu, pourquoi, ils t'ont donné le numéro mais pas la clef, les vaches, lol ?
---------
"thierry" <titi@laposte.net> a écrit dans le message de news:
GFr.1c196dc8c7c0cd679896f3@News.dial.oleane.com...
>
> Hello,
>
> pour calculer la clef du numéro de sécurité social, je dois faire les 13
> premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
> m'annonce un dépassement de capacité (je suis obligé de stocker les 13
> chiffres dans une donnée de type double). existe t'il une feinte, ou
> bien suis je compètement bloqué?
>
> cdt
>
> Thierry
Salut,
Avec le double ou le Variant, moi, ça ne passe même pas 13 chiffres???
Faudrait voir du côté des mises en exposant, là je ne connais pas...
Dim Num As Double
Dim Reste As Double
Num = 1234567890123#
Reste = Num Mod 97
MsgBox Reste
' === dépasement de capacité...
Par contre mon n°SS, sa clef est 75, et si je cherche le reste de mon
n°SS(13 premiers chiffres) / 97 ça donne pas "75" en reste, mais alors pas
du tout!!! Pas au point...
Heu, pourquoi, ils t'ont donné le numéro mais pas la clef, les vaches, lol ?
---------
"thierry" a écrit dans le message de news:
>
> Hello,
>
> pour calculer la clef du numéro de sécurité social, je dois faire les 13
> premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
> m'annonce un dépassement de capacité (je suis obligé de stocker les 13
> chiffres dans une donnée de type double). existe t'il une feinte, ou
> bien suis je compètement bloqué?
>
> cdt
>
> Thierry
Cadeaux bonux (norme IRIS B2 Avril 2000-B) :
2 - CLE TYPE 97
N° matricule assuré
Elle est calculée sur les 13 caractères significatifs :
diviser par 97 le nombre constitué par 13 caractères,
déterminer le complément à 97 du reste de cette division : il constitue la
clé.
Exemple : 1 29 02 78 551 031 : 97 = 13301840732
reste 27
complément : 97 - 27 = 70
la CLE est 70
NB : Pour les assurés nés en Corse, le couple 2A prend la valeur 19 pour
le
calcul de la clé et le
couple 2B la valeur 18.
et
function ClefSS(byval numss13$) ' numss13 déjà rectifié de la NB
précédente)
dim Src#,clef&,Cle$
src=val(numss13)
clef= 97 -(src-fix(src/97)*97))
cle=right("00" & trim(clef),2)
qui, je vous l'assure, marche très bien et pour de vrai (sinon mes clients
et les caisses m'auraient assassiné depuis longtemps !)
Cadeaux bonux (norme IRIS B2 Avril 2000-B) :
2 - CLE TYPE 97
N° matricule assuré
Elle est calculée sur les 13 caractères significatifs :
diviser par 97 le nombre constitué par 13 caractères,
déterminer le complément à 97 du reste de cette division : il constitue la
clé.
Exemple : 1 29 02 78 551 031 : 97 = 13301840732
reste 27
complément : 97 - 27 = 70
la CLE est 70
NB : Pour les assurés nés en Corse, le couple 2A prend la valeur 19 pour
le
calcul de la clé et le
couple 2B la valeur 18.
et
function ClefSS(byval numss13$) ' numss13 déjà rectifié de la NB
précédente)
dim Src#,clef&,Cle$
src=val(numss13)
clef= 97 -(src-fix(src/97)*97))
cle=right("00" & trim(clef),2)
qui, je vous l'assure, marche très bien et pour de vrai (sinon mes clients
et les caisses m'auraient assassiné depuis longtemps !)
Cadeaux bonux (norme IRIS B2 Avril 2000-B) :
2 - CLE TYPE 97
N° matricule assuré
Elle est calculée sur les 13 caractères significatifs :
diviser par 97 le nombre constitué par 13 caractères,
déterminer le complément à 97 du reste de cette division : il constitue la
clé.
Exemple : 1 29 02 78 551 031 : 97 = 13301840732
reste 27
complément : 97 - 27 = 70
la CLE est 70
NB : Pour les assurés nés en Corse, le couple 2A prend la valeur 19 pour
le
calcul de la clé et le
couple 2B la valeur 18.
et
function ClefSS(byval numss13$) ' numss13 déjà rectifié de la NB
précédente)
dim Src#,clef&,Cle$
src=val(numss13)
clef= 97 -(src-fix(src/97)*97))
cle=right("00" & trim(clef),2)
qui, je vous l'assure, marche très bien et pour de vrai (sinon mes clients
et les caisses m'auraient assassiné depuis longtemps !)
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire les 13
premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
m'annonce un dépassement de capacité (je suis obligé de stocker les 13
chiffres dans une donnée de type double). existe t'il une feinte, ou
bien suis je compètement bloqué?
cdt
Thierry
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire les 13
premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
m'annonce un dépassement de capacité (je suis obligé de stocker les 13
chiffres dans une donnée de type double). existe t'il une feinte, ou
bien suis je compètement bloqué?
cdt
Thierry
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire les 13
premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
m'annonce un dépassement de capacité (je suis obligé de stocker les 13
chiffres dans une donnée de type double). existe t'il une feinte, ou
bien suis je compètement bloqué?
cdt
Thierry
on pourrait aussi utiliser "Currency" ou "Décimal"
Bnsr,
A part traiter la chaine de caractères (cf. J-M. )
on pourrait aussi utiliser "Currency" ou "Décimal"
types spécifiques Access qui gèrent assez de decimales,
mais pas forcement pérennes.....
Voir aussi un post dans le forum VB (ou Excel)
dans la semaine passée....
Bonne Nui
Y
"Jean-Marc" a écrit dans le message de
news:41af6174$0$7823$"thierry" a écrit dans le message de
news:
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire
les 13 premiers chiffres modulo 97. Quand j'utilise la fonction
mod, elle m'annonce un dépassement de capacité (je suis obligé de
stocker les 13 chiffres dans une donnée de type double). existe
t'il une feinte, ou bien suis je compètement bloqué?
Hello,
Il suffit de savoir ce qu'est un modulo. Le modulo r d'un
chiffre n, c'est le reste de la division entière de n par r. Une
fois ceci acquis, nul besoin d'être grand druide pour en déduire:
resultat = (n mod r) = n - (INT(n/r)*r)
d'ou la fonction suivante et un exemple d'appel:
Option Explicit
Private Function CalculModulo97(n As String) As Integer
Dim v As Double
v = CDbl(n)
CalculModulo97 = v - Int(v / 97) * 97
End Function
Private Sub Command1_Click()
Dim result As Integer
Dim s As String
s = "2998567890123"
result = CalculModulo97(s)
MsgBox "le modulo 97 de " & s & " est : " & vbCrLf & result
End Sub
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
on pourrait aussi utiliser "Currency" ou "Décimal"
Bnsr,
A part traiter la chaine de caractères (cf. J-M. )
on pourrait aussi utiliser "Currency" ou "Décimal"
types spécifiques Access qui gèrent assez de decimales,
mais pas forcement pérennes.....
Voir aussi un post dans le forum VB (ou Excel)
dans la semaine passée....
Bonne Nui
Y
"Jean-Marc" <nospam_jean_marc_n2@yahoo.fr> a écrit dans le message de
news:41af6174$0$7823$ba620e4c@news.skynet.be...
"thierry" <titi@laposte.net> a écrit dans le message de
news:GFr.1c196dc8c7c0cd679896f3@News.dial.oleane.com...
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire
les 13 premiers chiffres modulo 97. Quand j'utilise la fonction
mod, elle m'annonce un dépassement de capacité (je suis obligé de
stocker les 13 chiffres dans une donnée de type double). existe
t'il une feinte, ou bien suis je compètement bloqué?
Hello,
Il suffit de savoir ce qu'est un modulo. Le modulo r d'un
chiffre n, c'est le reste de la division entière de n par r. Une
fois ceci acquis, nul besoin d'être grand druide pour en déduire:
resultat = (n mod r) = n - (INT(n/r)*r)
d'ou la fonction suivante et un exemple d'appel:
Option Explicit
Private Function CalculModulo97(n As String) As Integer
Dim v As Double
v = CDbl(n)
CalculModulo97 = v - Int(v / 97) * 97
End Function
Private Sub Command1_Click()
Dim result As Integer
Dim s As String
s = "2998567890123"
result = CalculModulo97(s)
MsgBox "le modulo 97 de " & s & " est : " & vbCrLf & result
End Sub
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
on pourrait aussi utiliser "Currency" ou "Décimal"
Bnsr,
A part traiter la chaine de caractères (cf. J-M. )
on pourrait aussi utiliser "Currency" ou "Décimal"
types spécifiques Access qui gèrent assez de decimales,
mais pas forcement pérennes.....
Voir aussi un post dans le forum VB (ou Excel)
dans la semaine passée....
Bonne Nui
Y
"Jean-Marc" a écrit dans le message de
news:41af6174$0$7823$"thierry" a écrit dans le message de
news:
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire
les 13 premiers chiffres modulo 97. Quand j'utilise la fonction
mod, elle m'annonce un dépassement de capacité (je suis obligé de
stocker les 13 chiffres dans une donnée de type double). existe
t'il une feinte, ou bien suis je compètement bloqué?
Hello,
Il suffit de savoir ce qu'est un modulo. Le modulo r d'un
chiffre n, c'est le reste de la division entière de n par r. Une
fois ceci acquis, nul besoin d'être grand druide pour en déduire:
resultat = (n mod r) = n - (INT(n/r)*r)
d'ou la fonction suivante et un exemple d'appel:
Option Explicit
Private Function CalculModulo97(n As String) As Integer
Dim v As Double
v = CDbl(n)
CalculModulo97 = v - Int(v / 97) * 97
End Function
Private Sub Command1_Click()
Dim result As Integer
Dim s As String
s = "2998567890123"
result = CalculModulo97(s)
MsgBox "le modulo 97 de " & s & " est : " & vbCrLf & result
End Sub
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Sub Form_Load()
Dim r As Integer
Dim a
Dim ss As Double
'
a = InputBox("Saisir N°SS sans la clef")
ss = CDbl(a)
r = ss - Int(ss / 97) * 97
'
a = "N°SS = " & ss & vbLf
a = a & "Modulo de 97 = " & r & vbLf
a = a & "clef (97 - " & r & ") = " & 97 - r & vbLf
a = a & "N°SS+Clef = " & ss & " " & 97 - r & vbLf
MsgBox a
End Sub
' ----------
"thierry" a écrit dans le message de news:
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire les 13
premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
m'annonce un dépassement de capacité (je suis obligé de stocker les 13
chiffres dans une donnée de type double). existe t'il une feinte, ou
bien suis je compètement bloqué?
cdt
Thierry
Sub Form_Load()
Dim r As Integer
Dim a
Dim ss As Double
'
a = InputBox("Saisir N°SS sans la clef")
ss = CDbl(a)
r = ss - Int(ss / 97) * 97
'
a = "N°SS = " & ss & vbLf
a = a & "Modulo de 97 = " & r & vbLf
a = a & "clef (97 - " & r & ") = " & 97 - r & vbLf
a = a & "N°SS+Clef = " & ss & " " & 97 - r & vbLf
MsgBox a
End Sub
' ----------
"thierry" <titi@laposte.net> a écrit dans le message de news:
GFr.1c196dc8c7c0cd679896f3@News.dial.oleane.com...
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire les 13
premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
m'annonce un dépassement de capacité (je suis obligé de stocker les 13
chiffres dans une donnée de type double). existe t'il une feinte, ou
bien suis je compètement bloqué?
cdt
Thierry
Sub Form_Load()
Dim r As Integer
Dim a
Dim ss As Double
'
a = InputBox("Saisir N°SS sans la clef")
ss = CDbl(a)
r = ss - Int(ss / 97) * 97
'
a = "N°SS = " & ss & vbLf
a = a & "Modulo de 97 = " & r & vbLf
a = a & "clef (97 - " & r & ") = " & 97 - r & vbLf
a = a & "N°SS+Clef = " & ss & " " & 97 - r & vbLf
MsgBox a
End Sub
' ----------
"thierry" a écrit dans le message de news:
Hello,
pour calculer la clef du numéro de sécurité social, je dois faire les 13
premiers chiffres modulo 97. Quand j'utilise la fonction mod, elle
m'annonce un dépassement de capacité (je suis obligé de stocker les 13
chiffres dans une donnée de type double). existe t'il une feinte, ou
bien suis je compètement bloqué?
cdt
Thierry