Numéro d'assurance social

Acidkepler Messages postés 38 Date d'inscription vendredi 3 septembre 2004 Statut Membre Dernière intervention 21 mars 2006 - 22 nov. 2004 à 17:45
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 - 22 nov. 2004 à 21:20
Bonjour

J'ai besoin d'aide, je dois faire une fonction dans vb6 qui validera si c'est un numéro d'assurence social, genre:

9 chiffres obligatoire, pas de nombre négatif, ni de chaine de caractères etc.

Quelqu'un peu m'aider??? Je débute!

vous pouver m'écrire à cette adresse :

acidkepler_666@hotmail.com

ou je viendrai ici...

Merci à l'avance

5 réponses

Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
22 nov. 2004 à 18:10
private function verifSS(nb as string) as boolean
dim nbss as long
dim retour as boolean
retour=true
nbss=val(nb)
if nbss<1000000000 then retour=false
verifss=nbss
end function
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 nov. 2004 à 18:32
Salut Acidkepler
Pour info, les n° de SS ont le format :
ABBCCDDEEEFFF GG
A = 1 Homme, 2 femme
BB = Année de naissance
CC = Mois de naissance
DD = Département de naissane
EEE = Code Insee de la ville de naissance
FFF = N° annuel de naissance
GG = CheckSum des précédents chiffres (un XOR je crois)

Vala
Jack
NB : Je ne répondrai pas aux messages privés
0
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
22 nov. 2004 à 18:39
Moi j'en savais rien, je teste juste qu'il y ai 9 chiffre et que cela ne soit pas nulle, c'est tout. Merci pour l'info jack, je dormirais moins con ce soir ;)
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
22 nov. 2004 à 18:43
Salut, pour la description du numéro de sécu, voir :

http://www.dads.cnav.fr/TDS/stru0103.htm

Cordialement, CanisLupus
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
22 nov. 2004 à 21:20
labout (celui qui donne les solutions)

Voila une fonction qui le fait

Funcction CalculCleNir(sValeur) As Boolean
Dim scle As Variant
Dim X, y, z, w, v, u, icle
Dim xValeurTest As String
If sValeur = "" Then
CalculCleNir = True
Exit Function
End If
' calcul pour la corse
' source http://xml.insee.fr/schema/nir.html
' On soustrait du nombre à 13 chiffres ainsi obtenu la valeur 1000000
' si le caractère alphabétique remplacé par un zéro était la lettre A,
' ou la valeur 2000000 si c'était la lettre B.
If InStr(sValeur, "B") > 0 And Len(sValeur) = 15 Then
sValeurtest = Replace(sValeur, "B", "0")
sValeurtest = Val(Left(sValeurtest, 13) - 2000000)
sValeurtest = Str(sValeurtest) & Mid(sValeur, 14)
X = Val(Left(sValeurtest, 13))
y = X / 97
z = Int(y)
w = z * 97
v = X - w
u = 97 - v
icle = u
If Trim(Str(icle)) <> Val(Right(sValeurtest, 2)) Then
CalculCleNir = False
Else
CalculCleNir = True
End If
Exit Function
End If
If InStr(sValeur, "A") > 0 And Len(sValeur) = 15 Then
sValeurtest = Replace(sValeur, "A", "0")
sValeurtest = Val(Left(sValeurtest, 13) - 1000000)
sValeurtest = Str(sValeurtest) & Mid(sValeur, 14)
X = Val(Left(sValeurtest, 13))
y = X / 97
z = Int(y)
w = z * 97
v = X - w
u = 97 - v
icle = u
If Trim(Str(icle)) <> Val(Right(sValeurtest, 2)) Then
CalculCleNir = False
Else
CalculCleNir = True
End If
Exit Function
End If

' End If

If Len(Trim(sValeur)) <> 15 Then
CalculCleNir = True
Exit Function
End If
If Left(sValeur, 1) "7" Or Left(sValeur, 1) "3" Or Left(sValeur, 1) = "8" Then
' pas de calcul de clé
CalculCleNir = True
Exit Function
Else
If Val(Mid(sValeur, 4, 2)) > 12 Then
CalculCleNir = False
Exit Function
End If
X = Val(Left(sValeur, 13))
y = X / 97
z = Int(y)
w = z * 97
v = X - w
u = 97 - v
icle = u
If Trim(Str(icle)) <> Val(Right(sValeur, 2)) Then
CalculCleNir = False
Else
CalculCleNir = True
End If
End If
End Function

appel
if calculecleNir(leN)Secu) then
' alors on fait

else
msgbox "erreur"
endif

@+
0
Rejoignez-nous