cs_Patrice99
Messages postés1221Date d'inscriptionjeudi 23 août 2001StatutMembreDernière intervention 9 septembre 2018 8 déc. 2011 à 09:16
Voir aussi : VÉRIFIER LA CONFORMITÉ D'UN CODE EAN (EUROPEAN ARTICLE NUMBERING) SUR 13 CARACTÈRES
www.vbfrance.com/code.aspx?ID=28143
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 8 déc. 2011 à 07:12
Dim C1, C2, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, C13 As Integer
ici, seul C13 est un Integer, les autres seront des Variants
C12 = Mid(ean13, 12, 1) * 3
manque un Val ou un test sur la numéricité du tout, non ?
If result3 = C13 Then
verif_ean13 = True
Else: verif_ean13 = False
End If
se dit :verif_ean13 (result3 C13)
result2 = (Mid(result1, 4, 1))
pourquoi 4 ? il te faut prendre le chiffre des unités...
Je coderai :
Sub test()
'9782940199617
MsgBox verif_ean13("4719512002889")
End Sub
Public Function verif_ean13(ean13 As String) As Boolean
Dim xsParts() As Byte
Dim i As Integer
Dim c As Integer
Dim Cumul As Long
If Len(ean13) = 13 Then
xsParts = StrConv(ean13, vbFromUnicode)
For i = 0 To 11
c = xsParts(i) - 48
If c < 0 Or c > 9 Then
Exit Function
End If
Cumul = Cumul + c + (2 * c * (i And 1))
Next
c = xsParts(i) - 48
Cumul = 10 - (Cumul - 10 * (Cumul \ 10)) verif_ean13 (c Cumul)
End If
End Function
8 déc. 2011 à 09:16
www.vbfrance.com/code.aspx?ID=28143
8 déc. 2011 à 07:12
ici, seul C13 est un Integer, les autres seront des Variants
C12 = Mid(ean13, 12, 1) * 3
manque un Val ou un test sur la numéricité du tout, non ?
If result3 = C13 Then
verif_ean13 = True
Else: verif_ean13 = False
End If
se dit :verif_ean13 (result3 C13)
result2 = (Mid(result1, 4, 1))
pourquoi 4 ? il te faut prendre le chiffre des unités...
Je coderai :
Sub test()
'9782940199617
MsgBox verif_ean13("4719512002889")
End Sub
Public Function verif_ean13(ean13 As String) As Boolean
Dim xsParts() As Byte
Dim i As Integer
Dim c As Integer
Dim Cumul As Long
If Len(ean13) = 13 Then
xsParts = StrConv(ean13, vbFromUnicode)
For i = 0 To 11
c = xsParts(i) - 48
If c < 0 Or c > 9 Then
Exit Function
End If
Cumul = Cumul + c + (2 * c * (i And 1))
Next
c = xsParts(i) - 48
Cumul = 10 - (Cumul - 10 * (Cumul \ 10)) verif_ean13 (c Cumul)
End If
End Function