Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


validering personnummer

Postades av 2007-06-29 12:56:49 - Peter Agren, i forum visual basic - allmänt, Tråden har 4 Kommentarer och lästs av 8183 personer

Hej

Har ett script för validera ett personnummer i en enskild "ruta", hur gör jag för att i exel kunna validera tex. dom nummer som står kolum A i kolumn B med Sant eller Falskt ?

Private Sub Personnummer()
Dim StrRaknare, NamnStr As String, Int1 As Integer, Resultat2, Resultat1 As Integer
Dim b, i As Integer, Int2 As Integer, Siffra As Integer

StrRaknare = ""
Int1 = 0
Int2 = 0
Siffra = 0
NamnStr = Left([Personnummer], 6) & Right([Personnummer], 4)

For b = 1 To Len(NamnStr)
Siffra = Mid(NamnStr, b, 1)
Select Case b
Case 1
StrRaknare = StrRaknare & (Siffra * 2)
Case 3
StrRaknare = StrRaknare & (Siffra * 2)
Case 5
StrRaknare = StrRaknare & (Siffra * 2)
Case 7
StrRaknare = StrRaknare & (Siffra * 2)
Case 9
StrRaknare = StrRaknare & (Siffra * 2)
Case Else
StrRaknare = StrRaknare & Siffra
End Select
Next b

For i = 1 To Len(StrRaknare)
Int1 = Int1 + Mid(StrRaknare, i, 1)
Next i

If Right(Int1, 1) <> 0 Then
Int2 = (Left(Int1, 1) + 1) * 10
Resultat1 = Int2 - Int1
If Right(NamnStr, 1) <> Resultat1 Then
MsgBox "Fraktsedelsnumret är inte rätt ifyllt, var god kontrolera inmatningen !", vbCritical, "Fraktsedelsnumret felaktigt"

End If
Else
Resultat2 = Int2 / 10
If Right(NamnStr, 1) = Resultat2 Then
MsgBox "Personnummret är inte rätt ifyllt, var god kontrolera inmatningen !", vbCritical, "Personnummer felaktigt"

End If
End If
End Sub


PÅ


Svara

Sv: validering personnummer

Postades av 2007-06-29 17:09:55 - Åsa Holmgren

Gör om subben till en Function som tar en inparameter och returnerar ett Boolskt värde. T.ex:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Public Function ValidatePnr(Pnr) As Boolean
    Dim sPnr As String
    Dim lIdx As Long
    Dim lNum As Long
    Dim lSum As Long
     
    On Error GoTo ValidatePnr_Err
     
        ' Tar bort ev bindestreck och de två första siffrorna vid ev fyrsiffrigt år
    sPnr = Replace(CStr(Pnr), "-", "")
    If Len(sPnr) = 12 Then sPnr = Mid$(sPnr, 3)
     
        ' Om strängen består av tio tecken går prog igenom dem ett och ett
    If Len(sPnr) = 10 Then
        For lIdx = 1 To 9 Step 2
            lNum = CLng(Mid$(sPnr, lIdx, 1)) * 2
            If lNum > 9 Then lNum = lNum \ 10 + lNum Mod 10
            lSum = lSum + lNum + CLng(Mid$(sPnr, lIdx + 1, 1))
        Next lIdx
         
        ValidatePnr = (lSum Mod 10 = 0)
    End If
     
    Exit Function
ValidatePnr_Err:
End Function


Sedan kan du t.ex. i cellen B1 skriva:

=ValidatePnr(A1)

Då kommer det att stå "SANT" om A1 innehåller ett giltigt personnummer eller "FALSKT" om det inte gör det.


Svara

Sv:validering personnummer

Postades av 2007-06-29 18:15:44 - Sven Åke Persson

Hej
Min lösning

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Option Explicit
Private Sub Command1_Click()
Dim tPnr As String
'Rätt 10 siffra är 3 Dvs 8604184153. Denna funktion kan du använda på alla data input
'postgiro siffror eller kontrollsiffror på Pg/bkg koder.
       tPnr = "860418-4157" 'Här ser du till att In personnummer ligger
       tPnr = Replace(tPnr, "-", "") ' om användren slagit 860418-4157
If Right$(tPnr, 1) = KontrollSiffra(Left$(tPnr, Len(tPnr) - 1)) Then
   MsgBox "Ok"
Else
   MsgBox "Fel Pnr"
End If
End Sub
'Min function klarar alla sifferkombinatione  4 - eller många
'testa gärna mot postgiro eller något annat.
'DVS jag tar fram rätt kontrollsiffra den längst till höger.
Private Function KontrollSiffra(ByVal nummer As String) As String
'Regel 1. alla beräkningar sker från slutet mot början.
'Därför blir det StrReverse
'Steg för steg så du kan följa tekniken
Dim tmpStr As String, sLen As Long, strKsum As String
Dim i As Long, Ksum As Long
      tmpStr = StrReverse(nummer) 'börja alltid bakifrån !
         sLen = Len(nummer)
'Siffror som skall multipliceras med 2
For i = 1 To sLen Step 2
 strKsum = strKsum & CStr(CLng(Mid$(tmpStr, i, 1)) * 2)
Next 'i
'Siffror som skall multipliceras med 1
For i = 2 To sLen Step 2
 strKsum = strKsum & Mid$(tmpStr, i, 1)
Next 'i
 sLen = Len(strKsum)
'Summera alla enskilda siffror tex 16 blir 1 + 6
For i = 1 To sLen
Ksum = Ksum + CLng(Mid$(strKsum, i, 1))
Next 'i
Ksum = 10 - (Ksum Mod 10)
If Ksum = 10 Then Ksum = 0
'Returnera resultatet
KontrollSiffra = CStr(Ksum)
End Function


Svara

Sv: validering personnummer

Postades av 2007-07-02 13:36:01 - Peter Agren

TACK !!!! För ert engagemang, ni har löst problemet.


Svara

Sv:validering personnummer

Postades av 2019-12-22 11:18:55 - Pelle Johansson

Även 22 december 2019 var den här posten användbar, nu finns den i mcparken.se


Svara

Nyligen

  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 846
27 961
271 763
5 573
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies
Expand
next previous
Close

Previous

0/0

Next