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 45225 keer)

0 leden en 1 gast bekijken dit topic.

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: berekenen van een ogm digit.
« Reactie #15 Gepost op: 17 mei 2016, 13:12:09 »
Arlyee, welkom op dit forum. Kan je laten weten wélke VBA procedure je hebt gekopieerd in je workbook? En WAAR heb je die precies geplaatst?
Bij installatie van een nieuwe Office-versie wordt standaard de Macro beveiliging op hoog/zéér hoog gezet. Let er dus wel op dat het toegestaan is om Macro's in je workbook op te starten.
Geef verder ook even aan wat voor "foutmeldingen" je langs ziet komen. Onze glazen bol is een beetje beslagen namelijk, dus kunnen we dat niet zo goed zien op afstand...  :'(
______________________________

Groet, Leo

Offline Arlyee

  • Nieuw lid
  • Berichten: 3
  • Geslacht: Vrouw
  • Oplossing.be
Re: berekenen van een ogm digit.
« Reactie #16 Gepost op: 17 mei 2016, 13:28:42 »
Ik heb jouw code gekopieerd :-) dan op alt+f11. Dan heb ik het juiste tabblad geselecteerd in het vba venster. Je formule heb ik in het grote witte vlak geplakt. Als ik dit wil opslaan krijg ik volgende melding. 'De volgende zaken kunne niet worden opgeslagen in werkmappen zonder macro's: VB-project'
als ik het toch wil opslaan moet ik het volgende doen: bestand opslaan als bestandstype met macro's. (dit lost het probleem ook niet op hoor)
Ik heb nu 2 versies van de excellijst staan, eentje xlsx en xlsm
bij geen van beide werkt de formule voor de mededeling.

In de cel waar de mededeling moet komen, plaats ik dan =OMG(de cel met het dossiernummer), maar krijg dan enkel #naam#

Snap je nu wat beter wat ik bedoel? (wou niet in eens heel de uitleg doen, stel dat er niemand zou reageren :-))

Alvast bedankt voor de hulp!

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: berekenen van een ogm digit.
« Reactie #17 Gepost op: 17 mei 2016, 15:56:17 »
Je MOET het bestand opslaan als .xlsM. Die "M"staat voor "macro's". Dus als .xlsX opslaan kan sowieso niet. ;)

Verder moet je die procedure ff opslaan in een Standaard Module. Het stuk met de Alt + F11 was goed. Maar klik dan op het driehoek-knopje in de knoppenbalk van de VBEditor. Je ziet dan de optie "Module" verschijnen. Klik die aan en er wordt een nieuwe lege module aangemaakt. Zet dáár de procedure en sla je workbook op. Als het goed is, zou het vanaf nu als vanouds moeten werken. Laat maar ff weten of het gelukt is.
______________________________

Groet, Leo

Offline Lijsterke

  • Lid
  • *
  • Berichten: 13
  • Oplossing.be
Re: berekenen van een ogm digit.
« Reactie #18 Gepost op: 30 mei 2016, 10:35:40 »
Beste RedHead,

Kan het zijn dat je code geen rekening houdt met het feit dat de OGM moet eindigen op 97 indien de rest bij deling door 97 nul is?
Of kijk ik erover?

Alvast bedankt

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: berekenen van een ogm digit.
« Reactie #19 Gepost op: 30 mei 2016, 12:21:57 »
Lijsterke, Het delen door 97 levert een 2 cijferig controle getal op. Je totale nummer van 10 cijfers hoeft uiteraard niet op 97 te eindigen.
Of snap ik je vraag niet?
______________________________

Groet, Leo

Offline Lijsterke

  • Lid
  • *
  • Berichten: 13
  • Oplossing.be
Re: berekenen van een ogm digit.
« Reactie #20 Gepost op: 30 mei 2016, 12:50:31 »
Dag RedHead, je hebt idd mijn vraag niet helemaal begrepen. Een OGM kan nooit eindigen op 00. Maw als het 2 cijferig controle getal gelijk is aan 00 (dit komt voor indien de rest door deling met 97 gelijk is aan 0), dan moet het controlegetal gewijzigd worden in 97 ipv in 00. En dat kan ik nergens in je code terugvinden, denk ik.

Bij online bankieren krijg je anders een foutmelding dat de gestructureerde mededeling niet correct is ;)

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: berekenen van een ogm digit.
« Reactie #21 Gepost op: 30 mei 2016, 16:09:42 »
Ahhh... Prima aanvulling. Was ik niet bekend mee. Kleine aanpassing in de procedure dus...
Citaat
Function OGM(dGetal As Double) As String
'voorbeeld OGM-nummer: +++785/4279/40359+++
Const iDELER As Integer = 97
Dim sCheckDigit As String, sTempOGM As String

    If Len(CStr(dGetal)) <> 10 Then OGM = "#ERR!": Exit Function
    sCheckDigit = Format(dGetal - (iDELER * Int(dGetal / iDELER)), "00") 'de MOD functie breekt af bij een Long Integer (=2147483648) = Bug van VBA!!!!
    sTempOGM = dGetal & IIf(sCheckDigit = "00", 97, sCheckDigit)
    OGM = "+++" & Mid(sTempOGM, 1, 3) & "/" & Mid(sTempOGM, 4, 4) & "/" & Mid(sTempOGM, 8, 5) & "+++"

End Function
______________________________

Groet, Leo

Offline Lijsterke

  • Lid
  • *
  • Berichten: 13
  • Oplossing.be
Re: berekenen van een ogm digit.
« Reactie #22 Gepost op: 30 mei 2016, 21:03:07 »
Nu doet ie het helemaal prima! :)

Offline Berste

  • Nieuw lid
  • Berichten: 1
  • Geslacht: Man
  • Oplossing.be
Re: berekenen van een ogm digit.
« Reactie #23 Gepost op: 17 juni 2016, 09:39:07 »
Hallo,

Ik ben ook op zoek naar een formule voor een gestructeeerde mededeling.
Bovenstaande olossingen lijken te werken bij 10-cijferige factuurnummers.
Alleen beginnen mijn factuurnummers met 0
Voorbeeld: 0162571915
Output zou moeten zijn: +++016/2571/91512+++

Iemand die me kan helpen?


Thanks

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: berekenen van een ogm digit.
« Reactie #24 Gepost op: 17 juni 2016, 15:27:51 »
Berste, welkom op dit forum.

Nav je vraag gelijk maar 'ns die functie een opfris beurt gegeven... Dit doet wat je vraagt.
Function OGM(sWaarde As String) As String
'voorbeeld OGM-nummer: +++785/4279/40359+++
Const iDELER As Integer = 97
Dim sCheckDigit As String, sTempOGM As String

    If Len(sWaarde) <> 10 Then OGM = "#ERR!": Exit Function
    sCheckDigit = Format(sWaarde - (iDELER * Int(sWaarde / iDELER)), "00") 'de MOD functie breekt af bij een Long Integer (=2147483648) = Bug van VBA!!!!
    sTempOGM = sWaarde & IIf(sCheckDigit = "00", 97, sCheckDigit)
    OGM = Format(sTempOGM, "+++000/0000/00000+++")
   
End Function
______________________________

Groet, Leo

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.127
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: berekenen van een ogm digit.
« Reactie #25 Gepost op: 17 juni 2016, 16:37:54 »
RedHead,

je nieuwe (vernieuwde) functie levert een #VERW! fout op.
Sorry, ik had de UDF hernoemt om de oude en de nieuwe code te vergelijken, en heb niet dadelijk beseft dat het wijzigen van de naam een invloed heeft op de UDF zelf.

Celeigenschappen A1 op Tekst gezet, en dan werkt het wel.

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: berekenen van een ogm digit.
« Reactie #26 Gepost op: 18 juni 2016, 22:07:34 »
En dan nóg maar een tandje beter...
Function OGM(sWaarde As String) As Variant
'voorbeeld OGM-nummer: +++785/4279/40359+++
Const iDELER As Integer = 97
Dim sCheckDigit As String

    If Len(sWaarde) <> 10 Then OGM = CVErr(xlErrValue): Exit Function
    ' de MOD functie breekt af bij een Long Integer (=2147483648) = Bug van VBA!!!! Daarom onderstaande formule...
    sCheckDigit = Format(sWaarde - (iDELER * Int(sWaarde / iDELER)), "00")
    OGM = Format(sWaarde & IIf(sCheckDigit = "00", 97, sCheckDigit), "+++000/0000/00000+++")

End Function
De onzinnige variabele sTempOGM verwijderd alsmede wordt er nu een échte Excel Error aangemaakt als de lengte van de opgegeven waarde ongelijk is aan 10 characters. Een letter in de opgegeven waarde geeft sowieso een Error.
______________________________

Groet, Leo

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: berekenen van een ogm digit.
« Reactie #27 Gepost op: 22 juni 2016, 20:52:10 »
Vind ik tóch altijd wel jammer... Krijg je als newby op een forum al na 6 uur een pasklaar antwoord op je vraag, laat je niets meer van je horen....  :'(
______________________________

Groet, Leo

Offline Arlyee

  • Nieuw lid
  • Berichten: 3
  • Geslacht: Vrouw
  • Oplossing.be
Re: berekenen van een ogm digit.
« Reactie #28 Gepost op: 27 juni 2016, 11:42:11 »
Sorry voor de late reactie. Heb even terug bijgelezen.
Nu werkt het wel !!!  :D :D :D ;D ;D ;D ;D
Dank je wel RedHead

Offline AllroundITer

  • Nieuw lid
  • Berichten: 4
  • Geslacht: Man
  • Hey, ik ben nieuw hier !
Re: berekenen van een ogm digit.
« Reactie #29 Gepost op: 04 oktober 2022, 01:01:53 »
Hallo allemaal,

Ik heb de code voor de functie OGM gekopieerd en uitgeprobeerd. De functie werkt prima!
Ik heb echter een probleem:

Het factuurnummer en klantnummer samen is kleiner dan 10 digits en dan werkt de functie niet.
Normaal gezien wordt het OGM getal aangevuld met "voorloopnullen" als het nummer <  10 cijfers.

At RedHead: Kan je de functie aanpassen opdat ze zou werken met om het even welke lengte van nummer (<10 digits)?
Alvast bedankt.

 


www.combell.com