Soyez le premier à donner votre avis sur cette source.
Snippet vu 28 320 fois - Téléchargée 41 fois
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
Cordialement
Polemos
Au plaisir!
oui, c'est possible : il faut simplement créer un module
et y coller la fonction (il ne faut pas que ce soit au niveau
de la feuille ou du classeur).
Est-il possible de faire fonctionner ce code sous Excel 97 ? Lorsque je fais un copier / coller dans Visual Basic Editor et que j'appelle la fonction Siren_IsValid, j'ai un message d'erreur : Nom non valide.
Merci de votre aide.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.