Avatar billede bmhaj Praktikant
14. marts 2017 - 12:07 Der er 11 kommentarer

FI kode

Er der en som har koden liggende til håndtering af FI koden til et girokort?
Avatar billede ebea Ekspert
14. marts 2017 - 12:27 #1
Hvis bare det er selve opstillingen, har jeg en her:
https://www.dropbox.com/s/2opvyihbvk1lej0/fi-ciffer.xls?dl=0

Jeg har også, hvor den er indsat i en faktura del. Men jeg ved ikke hvordan du skal lave dit Ark.
Avatar billede h_s Forsker
14. marts 2017 - 15:57 #2
Avatar billede ebea Ekspert
14. marts 2017 - 16:19 #3
#2 - Det har ikke rigtig noget med koden til FI kort at gøre, de 2 henvisninger du linker til. Det er kun en skabelon til, hvordan man håndterer selve opstillingen af FI feltet ;-)
Avatar billede tbc Novice
14. marts 2017 - 18:31 #4
Er det koden til generering af checkciffer du mangler?
Avatar billede h_s Forsker
14. marts 2017 - 18:46 #5
Koden til beregning af kontrolciffer kan ses i link i #2 på side 11 alt efter om det er kortart 71 eller 75 du ønsker.
#3 hvis det ikke er dette du ønsker må du være lidt mere specifik ;-)
Avatar billede bmhaj Praktikant
14. marts 2017 - 18:54 #6
Side 11 kan jeg ikke rigtig bruge. Har brug en VBA kode til at copy paste ind
Avatar billede h_s Forsker
14. marts 2017 - 19:19 #7
Så melder jeg pas. :-)
Avatar billede tbc Novice
14. marts 2017 - 19:34 #8
Her er to funktioner du kan indsætte.
Den ene kan genere et checkciffer og den anden kan kontrollere et.

Funktionen CheckCiffer(BetalingsID, KortArt):
Hvis nummeret er 00000073995094 vil funktionen
=Checkciffer("00000073995094";71) give checkciffer 7 som skal sættes på bagerst

Funktionen IsCheckCifferOK(BetalingsID As String, KortArt) :
hvis nummeret 000000739950947 er givet vil funktionen =ercheckcifferok("000000739950947"; 71) give resultatet Sandt.

Public Function IsCheckCifferOK(BetalingsID As String, KortArt) As Boolean
Dim vTemp As Variant
  On Error GoTo GetOut
  vTemp = CheckCiffer(Left(BetalingsID, Len(BetalingsID) - 1), KortArt)
  If vTemp = CInt(Right(BetalingsID, 1)) Then IsCheckCifferOK = True Else GoTo GetOut
  Exit Function
GetOut:
  IsCheckCifferOK = False
End Function

Function CheckCiffer(BetalingsID, KortArt) As Variant
Dim Chksum As Long
Dim lTempSum As Long
Dim x As Long
Dim lNumLen As Long
Dim lMin As Long
Dim lMax As Long
Dim bStart As Boolean

  Select Case KortArt
      Case "01", "73": GoTo Fejl
      Case "04", "15": lMin = 12: lMax = 15
      Case "71": lMin = 14: lMax = lMin
      Case "75": lMin = 15: lMax = lMin
      Case "  ", """  """
        If Left(BetalingsID, 1) Like "[2,4,8]" And Len(BetalingsID) = 18 Then
            lMin = 18
            lMax = lMin
        Else
            GoTo Fejl
        End If
      Case Else: GoTo Fejl
  End Select

  If Len(BetalingsID) < lMin Or Len(BetalingsID) > lMax Then GoTo Fejl
  lNumLen = Len(BetalingsID)
  Chksum = 0
  bStart = False
  For x = lNumLen To 1 Step -1
      lTempSum = CInt(Mid(BetalingsID, x, 1)) * (bStart + 2)
      bStart = Not bStart
      If lTempSum > 9 Then lTempSum = CInt(Left(lTempSum, 1)) + CInt(Mid(lTempSum, 2, 1))
      Chksum = Chksum + lTempSum
  Next
  Chksum = Chksum Mod 10
  If Chksum <> 0 Then Chksum = 10 - Chksum
  CheckCiffer = Chksum
  Exit Function
Fejl:
  CheckCiffer = CVErr(xlErrValue)
End Function
Avatar billede ebea Ekspert
14. marts 2017 - 20:28 #9
Hvad er det helt konkret du ønsker med dit spørgsmål?
Avatar billede Dan Elgaard Ekspert
11. juli 2017 - 13:14 #10
Faldt lige over denne her gamle tråd...
Måske noget af dette kan bruges:
http://www.EXCELGAARD.dk/Bib/FIK/
Avatar billede ebea Ekspert
11. juli 2017 - 13:30 #11
#10  -  Det ser ikke ud til, at nogen af indlæggene har været noget brugbart, selvom der liggger brugbare svar ;-)
Det var bedre, at spørgeren sørgede for at følge op på sit spørgsmål, og så fik lukket det igen. Så var der ikke personer herinde, som spildte tid på at forsøge at hjælpe, vedkommende!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester