![]() |
|
|
|||||||
| Registreer | FAQ | Gebruiksaanwijzing forum | Online excel cursus | Zoeken | Berichten van vandaag | Markeer forums als gelezen |
|
|
|
LinkBack | Discussietools | Weergave |
|
#1
|
|||
|
|||
|
De Europese ArtikelNummering of EAN code is een streepjescode (ook wel "barcode") die wereldwijd wordt toegepast bij artikelcodering in winkels.
Bij deze een VBA functie die controleert of EAN 13 codes geldig zijn. VB_018
__________________
Met vriendelijke groet; Spreadsheet Solutions - Mark Rosenkrantz --- |
| Sponsored Links |
|
#2
|
||||
|
||||
|
ik kan even niet volgen, dat is toch geen functie, je kan die niet parametreren of aanroepen met een bepaald gegeven ???
Code:
Sub test()
Dim x As Integer
x = CheckSumEAN13("101742256780")
If x = -1 Then
MsgBox "foute barcodelengte"
Else
MsgBox "het controlegetal is " & x
End If
End Sub
Function CheckSumEAN13(Barcode As String)
'deze UDF geeft als argument de checksom van de EAN13-barcode
'is de barcode geen 12 cijfers lang, dan krijg je -1 als resultaat
Dim i As Integer, Som As Integer
If Len(Barcode) <> 12 Then CheckSumEAN13 = -1: Exit Function ''lengte=12 ?
For i = 1 To 12 'loop alle cijfers af
Som = Som + Mid(Barcode, i, 1) * IIf(i Mod 2, 1, 3) 'oneven cijfers * 3, even cijfers *1
Next
CheckSumEAN13 = (10 - (Som Mod 10)) mod 10 'je controlegetal uitrekenen
End Function
__________________
bsalv ![]() "Er gaat meer boven je petje dan eronder" Toon Hermans Is je vraag afgehandeld, gelieve die dan op "opgelost" te zetten via de daarvoor voorziene knop |
|
#3
|
|||
|
|||
|
Het is inderdaad geen Functie maar een VBA procedure.
Uit de omschreven werkwijze op de webpagina had je ook kunnen opmaken dat het een procedure is. Met een beetje goed wil is er natuurlijk wel een functie van te maken, maar dat was niet de opzet. Mocht je de wil hebben om te kunnen parameteriseren... ga uw gang !!
__________________
Met vriendelijke groet; Spreadsheet Solutions - Mark Rosenkrantz --- |
|
#4
|
||||
|
||||
|
ik ken er te weinig van af. Ik veronderstel dat je een getal met 13 cijfers krijgt, de 1e 12 zijn je barcode en het 13e is het controlecijfer en dan moet je controleren of is het anders ?
__________________
bsalv ![]() "Er gaat meer boven je petje dan eronder" Toon Hermans Is je vraag afgehandeld, gelieve die dan op "opgelost" te zetten via de daarvoor voorziene knop |
|
#5
|
||||
|
||||
|
Citaat:
Code:
=ALS(LENGTE(A1)<>12;"foute lengte";REST(10-REST(SOM(DEEL(A1;{1,3,5,7,9,11};1)*1)+SOM(DEEL(A1;{2,4,6,8,10,12};1)*3);10);10))
__________________
Groet, GiMe Moderator Mr.GiMe@worksheet.nl Alles is relatief en zelfs dat.. Een bijlage (Excelvoorbeeldje met aanduiding van het gewenste resultaat) erbij betekent: -dat de helper(s) niet de, meestal reeds bestaande, worksheet van de vrager moet(en) overtypen -geen (ver)gissen mogelijk is bij de interpretatie van het proza -men reeds kan anticiperen op toekomstige problemen -veel vlugger tot een oplossing komt kortom : Het wiel niet opnieuw dient uitgevonden te worden ! |
|
#6
|
||||
|
||||
|
behalve de kommas ipv puntkommas tss de accolades vind ik de geboden oplossing superknap
![]() Ik heb alleen een klein vraagje, normaal had ik dit als matrixformule verwacht (afsluiten met CTRL+SHIFT+ENTER) en dat is hier blijkbaar niet nodig. Dus is het geen matrixformule, waarom niet ?
__________________
bsalv ![]() "Er gaat meer boven je petje dan eronder" Toon Hermans Is je vraag afgehandeld, gelieve die dan op "opgelost" te zetten via de daarvoor voorziene knop |
|
#7
|
|||
|
|||
|
Prachtige oplossing !!!
__________________
Met vriendelijke groet; Spreadsheet Solutions - Mark Rosenkrantz --- |
|
#8
|
||||
|
||||
|
??? Bij mij doet ie het nochtans ondanks (of dankzij) de komma's !!!
__________________
Groet, GiMe Moderator Mr.GiMe@worksheet.nl Alles is relatief en zelfs dat.. Een bijlage (Excelvoorbeeldje met aanduiding van het gewenste resultaat) erbij betekent: -dat de helper(s) niet de, meestal reeds bestaande, worksheet van de vrager moet(en) overtypen -geen (ver)gissen mogelijk is bij de interpretatie van het proza -men reeds kan anticiperen op toekomstige problemen -veel vlugger tot een oplossing komt kortom : Het wiel niet opnieuw dient uitgevonden te worden ! |
|
#9
|
||||
|
||||
|
het zal misschien iets met mijn instellingen zijn die anders zijn (???)
Waarom is de oplossing geen matrixformule ? Ik dacht van zodra je binnen de formule een soort loopje bouwt zoals hier de even en oneven getallen, dan moet je ctrl-shift-enter gebruiken.
__________________
bsalv ![]() "Er gaat meer boven je petje dan eronder" Toon Hermans Is je vraag afgehandeld, gelieve die dan op "opgelost" te zetten via de daarvoor voorziene knop |
![]() |
| Discussietools | |
| Weergave | |
|
|
|
|||||||
| Registreer | FAQ | Gebruiksaanwijzing forum | Online excel cursus | Zoeken | Berichten van vandaag | Markeer forums als gelezen |
Soortgelijke discussies
|
||||
| Discussie | Auteur | Forum | Reacties | Laatste bericht |
| Controle | T00N | Afgehandelde vragen | 13 | 28 januari 2012 16:39 |
| Controle week. | Jeroenvdl | Afgehandelde vragen | 4 | 15 december 2011 13:32 |
| controle schema | martinmack | Afgehandelde vragen | 2 | 26 mei 2010 16:06 |
| Rooster controle | janssen rijnmond | Afgehandelde vragen | 24 | 7 juli 2008 19:46 |
| controle euromillions | Timmers | Afgehandelde vragen | 5 | 3 augustus 2007 09:35 |