Un code qui sert à controler un n° de siret

ptiville1 Messages postés 30 Statut Membre -  
Azer_Ty Messages postés 108 Statut Membre -
Bonjour,
voila un code trouvé sur le web, il sert à controler un n° de siret
je cherche al integrer dans un formulaire d inscription mais je galere
si une ame charitable peut m aider merci d avance.
Voici le code,
Option Explicit
Public Function Siren_IsValid(ByVal pvValue As Variant) As Boolean
Dim i As Integer
Dim v As Integer
Dim iLuhnKey As Integer

Siren_IsValid = False
If Not IsNumeric(pvValue) Then Exit Function
If Len(Format$(CDbl(pvValue), "000000000")) <> 9 Then Exit Function
If pvValue = "000000000" Then Exit Function
iLuhnKey = 0
For i = 1 To Len(pvValue)
v = CInt(Mid$(pvValue, i, 1))
'*** Siren : les chiffres PAIRS pour le Siren sont doublés
If (i Mod 2) = 0 Then
v = v * 2
End If
If v >= 10 Then
iLuhnKey = iLuhnKey + (v - 9)
Else
iLuhnKey = iLuhnKey + v
End If
Next i
Siren_IsValid = (iLuhnKey Mod 10 = 0)
End Function
Public Function Siret_IsValid(ByVal pvValue As Variant) As Boolean
Dim i As Integer
Dim v As Integer
Dim iLuhnKey As Integer

Siret_IsValid = False
If Not IsNumeric(pvValue) Then Exit Function
If Len(Format$(CDbl(pvValue), "00000000000000")) <> 14 Then Exit Function
If pvValue = "00000000000000" Then Exit Function
If Not Siren_IsValid(Left$(pvValue, 9)) Then Exit Function
iLuhnKey = 0
For i = 1 To Len(pvValue)
v = CInt(Mid$(pvValue, i, 1))
'*** Siret : les chiffres IMPAIRS sont doublés
If (i Mod 2) = 1 Then
v = v * 2
End If
If v >= 10 Then
iLuhnKey = iLuhnKey + (v - 9)
Else
iLuhnKey = iLuhnKey + v
End If
Next i
Siret_IsValid = (iLuhnKey Mod 10 = 0)
End Function
A voir également:

1 réponse

Azer_Ty Messages postés 108 Statut Membre 60
 
Bonsoir,
J'ai essayé de traduire le code en javascript mais j'ignore ce que ça peux donner :
<script>
function isNumeric(chaine){
	var reg = new RegExp("[0-9]{" + chaine.length + "}");
	return reg.test(chaine);
}

function Siren_IsValid(pvValue){

	var i;
	var v;
	var iLuhnKey;
	var IsValid = false;

	if(isNumeric(pvValue) == false)
		return false;
	if(pvValue.length != 9)
		return false;
	if(pvValue == "000000000")
		return false;

	iLuhnKey = 0;
	
	for(i = 1; i <= pvValue.length; i++)
	{
		v = CInt(Mid$(pvValue, i, 1));
		// *** Siren : les chiffres PAIRS pour le Siren sont doublés 


		if(i % 2 == 0)
			v = v * 2 ;

		if(v >= 10)
		{ 
			iLuhnKey = iLuhnKey + (v - 9);
		}
		else
		{
			iLuhnKey = iLuhnKey + v;
		}
	}

	if(iLuhnKey % 10 == 0)
		IsValid = true;

	return IsValid;
}

function Siret_IsValid(pvValue){
	var i; 
	var v; 
	var iLuhnKey;

	IsValid = false;
	
	if(isNumeric(pvValue) == false)
		return false;
	if(pvValue.length != 14)
		return false;
	if(pvValue == "00000000000000")
		return false;

	if(Siren_IsValid(Left$(pvValue, 9)))
		return false;
		
	iLuhnKey = 0;

	for(i = 1; i <= pvValue; i++)
	{
		v = CInt(Mid$(pvValue, i, 1)) 
		// *** Siret : les chiffres IMPAIRS sont doublés 
		if(i % 2 == 1) 
			v = v * 2;

		if(v >= 10) 
		{
			iLuhnKey = iLuhnKey + (v - 9);
		}
		else
		{
			iLuhnKey = iLuhnKey + v;
		}

	}
	
	if(iLuhnKey % 10 == 0)
		IsValid = true;
}

function maFonction(){
	var resu = Siret_IsValid(document.getElementById('num').value);
	alert(resu);
}

</script>
<body>
<input type="text" id="num" value="" />
<br />
<input type="button" value="Verifier" onClick="maFonction()" />
</body>


Bonne continuation.
0