Hyödyllinen koodinpätkä, jolla voi VBA-scriptissä laskea viitenumeron.
HUOM. Finanssialan keskusliitto
(http://www.fkl.fi/teemasivut/sepa/tekninen_dokumentaatio/Dokumentit/kotimaisen_viitteen_rakenneohje.pdf)
määrittää, että
viitenumeron pituus tulee olla vähintään 3 merkkiä + tarkiste.
Seuraava funktio laskee viitenumeron tarkisteen:
Function LaskeViite(ByVal numerosarja As String) As String
'Muuttujien esittely
Dim origSarja As String ' alkuperäinen numerosarja
Dim Laskuri As Byte ' laskuri
Dim sarjanPituus As Byte ' numerosarjan pituus
Dim tarkisteNumero As Byte ' tarkistenumero
Dim sarjanSumma As String ' numerosarjan summa
Dim kertoimet(2) As Byte ' kertoimet
Dim i As Integer
Dim j As Integer
Dim refnumber As String 'Viitenumero ilman jarjestelyä
Dim outstr As String
Dim UusiViite As String 'Viitenumero 5 mrk. ryhmissä
'muuttujien alustus
origSarja = numerosarja
sarjanPituus = Len(numerosarja)
Laskuri = 0
sarjanSumma = 0
tarkisteNumero = 0
kertoimet(0) = 7: kertoimet(1) = 3: kertoimet(2) = 1
'tarkistetaan annetun numerosarjan pituus ja sisältö
If (sarjanPituus < 1 Or sarjanPituus > 19) Or Not IsNumeric(numerosarja) Then GoTo Viite_Error
'käydään numerosarja lävitse
Do While Laskuri < sarjanPituus
sarjanSumma = sarjanSumma + (Mid(numerosarja, sarjanPituus - Laskuri, 1) * kertoimet(Laskuri Mod 3))
Laskuri = Laskuri + 1 'laskurin inkrementointi
Loop
'lasketaan tarkistenumero (sarjan summasta seuraava täysi kymmen - sarjan summa)
tarkisteNumero = (10 - (sarjanSumma Mod 10)) Mod 10
'palautetaan kutsuvaan aliohjelmaan alkuperäinen numerosarja ja tarkisteNumero
LaskeViite = origSarja & tarkisteNumero
refnumber = origSarja & tarkisteNumero
strlen = Len(origSarja & tarkisteNumero)
' / Järjestetään 5 merkin ryhmiin
If strlen > 5 Then
j = 0
For i = strlen To 1 Step -1
j = j + 1
If j = 6 Then
outstr = outstr & " "
j = 1
End If
outstr = outstr & Mid(refnumber, i, 1)
Next
UusiViite = ""
For i = Len(outstr) To 1 Step -1
UusiViite = UusiViite & Mid(outstr, i, 1)
Next i
LaskeViite = UusiViite
End If
Exit Function
Viite_Error:
On Error GoTo 0
Err.Raise vbObjectError + 1001, , "Viitenumeroksi laskettava numerosarja virheellinen"
LaskeViite = ""
Exit Function
End Function
maanantai 16. helmikuuta 2015
maanantai 9. helmikuuta 2015
VB.net - Tietojen vieminen Excel.CSV tiedostoon
Excelin CSV- muotoiseen tauluun voi viedä VB.net koodissa dataa. Esim. puolipisteellä erotellaan arvot toisistaaan. Jos haluat viedä yhteen Excel soluun dataa, joka sisältää puolipisteen, se on tehtävä näin hankalan näköisesti:
ExcelSolu = """" & EkaMuuttuja & ";" & TokaMuuttuja & """"
ExcelSolu = """" & EkaMuuttuja & ";" & TokaMuuttuja & """"
Tilaa:
Blogitekstit (Atom)