VBA Tipp: EAN-13 überprüfen

Aus DBWiki
Wechseln zu: Navigation, Suche

Aufgabenstellung

  • Ich möchte eine EAN-13 (Europäische Artikel-Nummer) mit Prüfziffer auf Gültigkeit prüfen.
  • Ich möchte die Prüfziffer einer EAN-13 errechnen.

Lösung

Die EAN-Prüfziffer wird mit einem alternierenden Modulo-Verfahren errechnet:

Public Function EAN13Pruefziffer(EAN)
'
'  EAN-13 Prüfziffer errechnen
'
Dim I As Long, Sum As Long, Fak As Long
  EAN13Pruefziffer = Null
  If IsNull(EAN) Then Exit Function
  If Len(EAN) <> 12 Then Exit Function
  Sum = 0: Fak = 3
  For I = Len(EAN) To 1 Step -1
    Sum = Sum + (Asc(Mid(EAN, I, 1)) - Asc("0")) * Fak
    If Fak = 3 Then
      Fak = 1
    Else
      Fak = 3
    End If
  Next I
  EAN13Pruefziffer = (10 - Sum Mod 10) Mod 10
End Function
 
Public Function EAN13Pruefen(EAN)
'
'  EAN-13 anhand der Prüfziffer überprüfen
'
Dim I As Long, Sum As Long, Fak As Long
  EAN13Pruefen = Null
  If IsNull(EAN) Then Exit Function
  EAN13Pruefen = False
  If Len(EAN) <> 13 Then Exit Function
  Sum = 0: Fak = 1
  For I = Len(EAN) To 1 Step -1
    Sum = Sum + (Asc(Mid(EAN, I, 1)) - Asc("0")) * Fak
    If Fak = 3 Then
      Fak = 1
    Else
      Fak = 3
    End If
  Next I
  EAN13Pruefen = Sum Mod 10 = 0
End Function


Aufruf

EAN13Pruefziffer(128312791233)
 
' Rückgabe:
 6
EAN13Pruefen("4026700450408")
 
' Rückgabe:
Wahr
' Uhu-Alleskleber ;=)
Wiki hinweis.png Anmerkung: Die Berechnung der EAN-8-, EAN-14- und UPCA-Prüfziffer ist bis auf die unterschiedlichen Längen identisch.


Weblinks