Also:
ich habe Excel 2003 und erstelle eine "benutzerdefinierte Funktion" mit folgendem VBA Code (da is auch die Berechnung drin....
Public Function Interleaved_2_of_5(Zahl As Range) As Variant
Dim intIndex As Integer
Dim lngSum As Long
Dim blnSwitch As Boolean
If IsNumeric(Zahl.Text) Then
For intIndex = Len(Zahl.Text) To 1 Step -1
If Not blnSwitch Then
lngSum = lngSum + CInt(Mid$(Zahl.Text, intIndex, 1)) * 3
Else
lngSum = lngSum + CInt(Mid$(Zahl.Text, intIndex, 1))
End If
blnSwitch = Not blnSwitch
Next
lngSum = lngSum Mod 10
If CBool(Len(Zahl.Text) + Len(CStr(lngSum)) Mod 2) Then
Interleaved_2_of_5 = CDbl(Zahl.Text & "0" & CStr(lngSum))
Else
Interleaved_2_of_5 = CDbl(Zahl.Text & CStr(lngSum))
End If
ElseIf Not IsEmpty(Zahl.Value) Then
Interleaved_2_of_5 = "Keine Zahl !"
End If
End Function
So. Die Benutzerdefinierte Funktion wird auch erkannt und ich kann Sie nutzen. nur die Prüfsumme funktioniert nicht so recht.
Habe ein BSP: 0030449299002030 --> Prüfsumme ist 05 (also nur 5, aber da 2of5 Interleaved Modulo 10 nur grade stellen macht, setz ich da ne 0 davor)
aber wenn ich das mitn Excel mach bekomme ich das hier raus: 003044929900203000
die beiden nullen davor müssen sein (systembarcode zum abscannen) aber wo ist bitte mein Fehler wegen dem Prüfcode?
Hoffe mir ist zu helfen =)
lg
Tommy
Dieser Beitrag wurde von Thomynator bearbeitet: 28. Oktober 2010 - 12:00