• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

SSCC code berekenen

Status
Niet open voor verdere reacties.

dickbeverdam

Gebruiker
Lid geworden
29 sep 2011
Berichten
13
Hallo,

ik ben met een conversie bezig van een WM systeem.
hierbij maken ze gebruik van SSCC codes en berekeningen.
Ik ben er met testen achter gekomen dat deze niet altijd juist in barcode staan en om daarom zou ik graag een totaal controle willen doen.

ik heb ongeveer 4000 berekeningen zie toegevoegd excell sheet met voorbeeld en berekening...

kan iemand mij helpen?

Bekijk bijlage sscc code.xlsx
 
Met een UDF

Code:
Function sscc_snb(c00)
   sn = Split(StrConv(c00, vbUnicode), Chr(0))
    For j = 0 To UBound(sn) - 2
      y = y + (sn(j) * IIf(j Mod 2 = 0, 3, 1))
    Next
    sn(j) = Application.Ceiling(y, 10) - y
    sscc_snb = Join(sn, "")
End Function
 
De UDF van snb samen met een formule-aanpak in een bestand geplaatst.
 

Bijlagen

het kon nog wat simpeler:

Code:
Public Function sscc_snb2(c00)
    For j = 1 To Len(c00) - 1
      y = y + (Mid(c00, j, 1) * IIf(j Mod 2 = 0, 1, 3))
    Next
    sscc_snb2 = Left(c00, Len(c00) - 1) & Application.Ceiling(y, 10) - y
End Function

@alpha

Omdat het algoritme voor 13 cijferige EAN codes anders is werkt deze formule niet.
Om in beide gevallen te kunnen werken moet ie aangepast worden tot


Code:
Public Function sscc_snb2(c00)
    For j = 1 To Len(c00) - 1
      y = y + (Mid(c00, j, 1) * IIf(j Mod 2 = Abs(Len(c00) < 18), 1, 3))
    Next
    sscc_snb2 = Left(c00, Len(c00) - 1) & Application.Ceiling(y, 10) - y
End Function
 
Laatst bewerkt:
Alphamax,
Mijn formule hield enkel rekening met de 17+1 variant uit het voorbeeld. Zie aangepaste versie voor 12+1. Maar zelfs dan is er soms verschil met jouw formule(wanneer het controlegetal 0 is). Wat er in die situatie juist moet gebeuren weet ik ook niet.
 

Bijlagen

Mooie formule, kan alleen nog niet vergelijken

Alphamax,
Mijn formule hield enkel rekening met de 17+1 variant uit het voorbeeld. Zie aangepaste versie voor 12+1. Maar zelfs dan is er soms verschil met jouw formule(wanneer het controlegetal 0 is). Wat er in die situatie juist moet gebeuren weet ik ook niet.


Hi All,

dank jullie voor de oplossing.

toegevoegd de sheet.
in kolom A staat onze SSCC, in Kolom C de Berekening.
Ze zijn allemaal 17 pos lang. + controle getal

hoe kan ik deze 2 kolommen met elkaar vergelijken, om te zien welke niet overeen komen?

hoor graag,

Grt
Dick
 

Bijlagen

in de A-kolom staat er nog een ascii-teken 160 na je getallen, met deze vergelijk je zonder dat teken. zet dat bv. in D2 en trek naar beneden
Code:
=+(C2=SUBSTITUEREN(A2;TEKEN(160);""))
 
in de A-kolom staat er nog een ascii-teken 160 na je getallen, met deze vergelijk je zonder dat teken. zet dat bv. in D2 en trek naar beneden
Code:
=+(C2=SUBSTITUEREN(A2;TEKEN(160);""))



Dank je wel, ik leer het wel!

ik heb de code geplaatst, maar dan blijft de ASCII aktief.
hij blijft een foutmelding geven...
 
Laatst bewerkt:
De formule van Cow18 in kolom E geplaatst. In combinatie met voorwaardelijke opmaak in kolom A geeft dit als resultaat dat de "verkeerde" SSCC codes in kolom A een rode achtergrond krijgen.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan