Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: berekenen van een ogm digit.  (gelezen 45234 keer)

0 leden en 1 gast bekijken dit topic.

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: berekenen van een ogm digit.
« Reactie #45 Gepost op: 05 oktober 2022, 15:50:25 »
Public Function OGMRND() As String

'Auteur: VBA UDF code geschreven door Diezel van Oplossing.be
'Datum: dinsdag 4 oktober 2022 11:06
'Last Update:
'Toetsing van de code kan je online met de Belgische OGM tool
'Tool: https://www.gestructureerdemededeling.be/
'Update: woensdag 5 oktober 2022 5:25

'Declaratiesectie van de variabelen
Dim lowerbound As Double
Dim upperbound As Double
Dim Randomize As Double
Dim sCheckDigit As String
Dim I As Integer

'Functie Generator
   lowerbound = 1
   upperbound = 9999999999#
   Randomize = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
   
 
    'We vragen aan de functie Controlegetal de sCheckDigit.
    sCheckDigit = Format(Controlegetal(Randomize), "00")
   
    'Opmaken van het OGM nummer
    OGMRND = Format(Randomize & sCheckDigit, "+++000/0000/00000+++")

End Function


Functie Randomize
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: berekenen van een ogm digit.
« Reactie #46 Gepost op: 05 oktober 2022, 15:51:41 »
Private Function Invoercontrole(ByVal dWaarde As Double) As Boolean
'Auteur: VBA UDF code geschreven door Diezel van Oplossing.be
'Datum: woensdag 5 oktober 2022 13:42
'Last Update:
'Benaming functie OGM: Invoercontrole.
'Doelstelling functie: Validatiecontrole

'Declaratiesectie van de variabelen
Dim I As Integer

Invoercontrole = False
   'Is dWaarde leeg dan zal optional een 0 retourneren en zal de procedure verlaten worden.
   'Indien dWaarde méér dan 10 cijfers bevat, dan wordt de procedure verlaten.
   'Is dWaarde niet numeric, procedure verlaten.
   'If Not IsNumeric(dWaarde) Then Booleaanse waarde WAAR
   MsgBox Len(dWaarde)
    'Fouten opvangen bij het intikken of uitlezen van dWaarde.
    For I = 1 To Len(dWaarde)
    If Not IsNumeric(Left(dWaarde, I)) Then Invoercontrole = True
    Next I
   
    If dWaarde = 0 Or dWaarde < 0 Or Len(dWaarde) > 10 Then Invoercontrole = True
       
End Function

Invoercontrole maar dit kan nog beter
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: berekenen van een ogm digit.
« Reactie #47 Gepost op: 05 oktober 2022, 15:54:46 »
Hallo SoftAid,

't Kan iedereen overkomen, toch?  :D, m.a.w. het stoort heus niet!

Ik wil graag nog iets nuanceren. Wat de voorloopnullen betreft zou ik ze voor mezelf altijd vooraan zetten, maar toegegeven, dat is een gevoelsmatige kwestie, vermoedelijk gebaseerd op mijn enigszins wiskundig denken. Waar het écht op aankomt is dat men een geldig OGM-nummer nodig heeft, en voor de rest is het aan de gebruiker om ervoor te zorgen dat hij naderhand met 100% zekerheid de betaling (factuur- en/of klantnummer, maar kan net zo goed iets anders zijn) kan determineren.

Helemaal buiten de context, maar voor wie het interesseert: een rijksregisternummer heeft ook een controlegetal dat uit 2 cijfers bestaat maar wordt op iets andere wijze bepaald. Er wordt nochtans ook door 97 gedeeld en daarna de rest genomen. Het verschil is dat die rest daarna van 97 wordt afgetrokken. Zomaar een wist-je-datje dus.

Mvg,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: berekenen van een ogm digit.
« Reactie #48 Gepost op: 05 oktober 2022, 15:57:56 »
is ook voor identiteitskaarten, rijbewijzen, bankrekeningnummers en ja het rijksregisternummer, Creditcardnummers, BTWnummers.

Merk op dat het controlegetalalgoritme en het aantal cijfers dezelfde zijn als bij het klassieke Belgische twaalfcijferige bankrekeningnummer (in 2011 vervangen door de IBAN).
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline AllroundITer

  • Nieuw lid
  • Berichten: 4
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: berekenen van een ogm digit.
« Reactie #49 Gepost op: 06 oktober 2022, 00:43:18 »
Aan allen,

Hartelijk dank voor jullie inspanningen en meedenken.
Mijn verontschuldigingen dat ik niet eerder gereageerd heb, maar ik had onverwachte persoonlijke medische issues.

Ik wil hier absoluut niet de wijsneus uithangen, want jullie kennis is voor mij duidelijk duizend maal groter dan de mijn inzake excel/vba.

De link, die hier al enkele keren werd vermeld (www.gestructureerdemededeling.be) nam ik als maatstaf, als correct zeg maar.

Als ik daar mijn nummer ingeef (105100112) (9 digits) dan geeft die webiste het resultaat dat ik eerder vermeldde nl (+++105/1001/12009+++)

Met de verschillende codes die hier geplaatst werden komt steeds het resultaat (+++010/5100/11230+++)

Beide resultaten zijn duidelijk verschillend, maar misschien is dat niet erg?

Ik stel me gewoon de vraag, welke is nu juist? Of zijn ze beiden juist? Het zou kunnen dat het controlegetal bij beiden klopt?

Ik ben namelijk, samen met nog iemand, met een facturatieproject in Excel bezig en ik stel me gewoon de vraag: Hoe moet ik deOGM mededeling op een corecte manier berekenen en programmeren. De codes die jullie hier postten zijn duidelijk.

Ik ben zeer dankbaar voor de verschilelnde oplossingen, maar ik ben gewoon verward omdat die website een ander resultaat geeft dan jullie oplossing.

Kan er iemand duidelijkheid verschaffen?

Alvast hartelijk bedankt.

Mvg,

AllroundITer (Bart)

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: berekenen van een ogm digit.
« Reactie #50 Gepost op: 06 oktober 2022, 09:06:20 »
AllRoundITer,

Tik eens op de website het volgende in: 0105100112 en 1051001120 bij het ene nummer(voorloopnul) en bij het andere achterloopnul. Beiden geven natuurlijk een ander resultaat. Het nadeel indien men achteloopnullen zou gebruiken is dat je een bereik mist van 000 tot 099 bij de eerste groep cijfers van het OGM en dat zijn 999 mijoen 999 duizend 999 unieke OGM combinaties dat je mist(wiskundig)10% verlies aan combinatties. Hangt ervan af naarwaar jou voorkeur naartoe gaat. Als je voorloopnul gebruikt zal ooit 105100112 ook wel voorkomen. Je kan ook het OGM starten vanaf een bepaalde range en bij elke facturatie en of verkoop kan je het getal automatisch met +1 of méér verhogen(eigen voorkeur). in uw geval zou dan het factuurnummer zijn. Wil je die nullen niet vooraan niet zien verschijnen dan laat je uw factuurnummer starten van af 100 en vul dan aan met achterloopnullen. Wil je factuurnummer starten vanaf 200 enz... Hoop dat het nu wat duidelijk is. Er staan hier voorbeelden genoeg die correct werken. Besluit: oftewel gebruik je voorloopnullen of achterloopnullen. Aan jou de keuze. Het OGM zal in beide gevallen geldig zijn.

Vriendelijke groeten,

Diezel
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline MollyVH

  • Excel-Expert
  • Oplosser
  • *****
  • Berichten: 847
Re: berekenen van een ogm digit.
« Reactie #51 Gepost op: 06 oktober 2022, 10:07:04 »
Citaat
Ik stel me gewoon de vraag, welke is nu juist? Of zijn ze beiden juist? Het zou kunnen dat het controlegetal bij beiden klopt?

OK, ik doe ook nog een poging, al zie ik niet waar er na alle voorgaande posts nog onduidelijkheid kon bestaan.
Een juist ogm-nummer 'berekenen' is een uiterst eenvoudig rekenkundige kwestie, je hebt enkel 10 cijfers nodig, en dan zijn nog enkel de 4 basisbewerkingen nodig. Als je daar de juiste code voor gebruikt moet je dat niet nog eens op een of andere website gaan checken.

Laat ons nog eens naar de essentie kijken, 2 zaken zijn dan even belangrijk: 1) de bank moet de betaling van je klant kunnen uitvoeren, daarom is een geldig ogm-nummer vereist, en 2) jij moet de ontvangen betaling kunnen herkennen.

Stel: je wil klant- en factuurnummer gebruiken als basis van het ogm-nummer. Als die samen geen 10 cijfers tellen moet het worden aangevuld. Nu ga ik het eens heel moeilijk maken: die mogen vooraan of achteraan staan, maar ook ergens in het midden, en het moeten niet per se nullen zijn! (want van elk 10-cijferig getal kan uiteraard een correct controlegetal worden berekend). Waar het op aan komt is dat jij nadien met zekerheid kan zien wat het klant- en wat het factuurnummer is.
Voorbeeldje: klant 21 en factuur 17. Ale je die achter elkaar plakt als 2117, en je krijgt daarna 2117 als betaling, dan kan het natuurlijk ook factuur 117 van klant 2 zijn.
Conclusie: gebruik altijd evenveel cijfers voor klantnummer en evenveel cijfers voor factuurnummer (OF laat dat door de code doen, in dat geval wél verplicht met voorloopnullen), al de rest is vrije keuze.

In je finale project zal de code overigens korter kunnen, want je gaat dat nummer niet zelf intikken, neem ik aan? Het zal bepaald worden door een juist klant- en factuurnummer elders op je werkblad, niet? Dan kunnen alle controles uit onze code meteen overboord.

Mvg,
Molly
Windows 11 Home NLD 64bit
11th Gen Intel(R) Core(TM) i7-11700 @ 2.50GHz 2496
Aspire TC-1660
Intel(R) UHD Graphics 750 1024MB
476 GB SSD KINGSTON OM8PCP3512F-AA
1863 GB HD Seagate ST2000DM008-2FR102
Office 2021 Professional Plus NLD 64bit

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: berekenen van een ogm digit.
« Reactie #52 Gepost op: 06 oktober 2022, 10:20:38 »
MollyVH,

Bedankt om toch hele tijd mee te denken; op zich is het OGM een uniek getal. Dus als je met een databank zou werken is het OGM nummer al voldoende om de klant terug te vinden. op 1 na zijn er 10 miljard combinaties beschikbaar. Gelukkig kunnen we daar creatief mee omspringen in het programmeren. Natuurlijk heeft ieder zijn eigen voorkeuren en er zijn mogelijkheden genoeg om net met die creativiteit en analytisch brein om te gaan. De tool vond ik handig om een toetsing te doen van ja ben ik wel goed bezig om mijn eigen versie van code te testen en ook om erachter te komen wat er nu gangbaar is met die voorloop en of achterloopnullen. Door een aantal dagen mijn tanden in het onderwerp te bijten is het mij nu duidelijk geworden welke mogelijkheden er nu bestaan om met het OGM creatief aan de slag te gaan. Natuurlijk is er de basiscode formule. Daarnaast heb je natuurlijk de vrijheid vanwaar je het OGM bereik wil laten starten aan de hand van aantal zaken zoals factuurnummer en of klantnummer of een combinatie ervan. Hangt ook vanaf kleine onderneming, grote, multinational. Normaal gezien ga je dan met de stafleden van het bedrijf bespreken en of met de financiële dienst van de firma om duidelijke regels te bepalen van hoe we het OGM nr gaan opbouwen voor de eerste 10 cijfers wat het betalingsverkeer betreft en de financiële administratie binnen het bedrijf zelf.

Ik bedank dan ook iedereen die hebben meegedacht rond dit onderwerp en initiatief hebben genomen om een UDF VBA basiscode op te zetten. iK heb bijgeleerd en het is zeker een meerwaarde en ik durf te reflecteren van ja wat was er fout gegaan, wat kon er beter, durven hulp inroepen op het forum hier. Openstaan voor feedback.

Vriendelijke groeten,

Diezel
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline AllroundITer

  • Nieuw lid
  • Berichten: 4
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: berekenen van een ogm digit.
« Reactie #53 Gepost op: 06 oktober 2022, 10:49:37 »
Diezel, MollyVH,

Bedankt voor de duiding.

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: berekenen van een ogm digit.
« Reactie #54 Gepost op: 06 oktober 2022, 10:59:41 »
AllroundITer, graag gedaan hoor. Waren spannende nachtjes geweest. :)

Diezel
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

Offline Diezel

  • Oplosser
  • ****
  • Berichten: 508
  • Geslacht: Man
  • Meedenker - Initiatief nemen - Helpen oplossen...
Re: berekenen van een ogm digit.
« Reactie #55 Gepost op: 06 oktober 2022, 16:08:15 »
MollyVH,

Je hebt een punt dat de foutcontroles overbodig zijn. Validatietools hebben we ook niet nodig want de klant betaald toch online via de bank en daar wordt al validatiecontrole toegepast bij het intikken van het OGM nummer. Men kan de focus leggen om basiscode te schrijven om factuurnummers te genereren met daaraan evt een klantenr of ..... eraan te koppelen. Als dit in orde is kan men de OGM basiscode zijn werk laten doen.

Vriendelijke groeten,

Diezel
OS: Windows 10 Home - 64 bit
Processor:  Intel(R) Core(TM) I7 - 4770 CPU 3,40 GHZ
SSD - RAM: 500 GB, 16 GB
SOFTWAREPAKKET: Office 2007

 


www.combell.com