Toon posts:

[Excel] 11-proef dmv macro

Pagina: 1
Acties:
  • 248 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb ongeveer vijfhonderd bank/giro rekening nummers die ingevoerd moeten gaan worden in excel. Nu lijkt het mij handig wanneer deze nummers direct worden onderworpen aan de zogenaamde 11-proef (zie http://www.draaijer.com/cgi-bin/bank) en/of direct als girorekening worden aangemerkt.
Via google kwam ik alleen een code voor delphi tegen ( http://www.delphi-gg.nl/F...ng_controlleer_module.htm ), misschien is er iemand die hier al een macro voor Excel voor heeft of weet???

Voor mij als beginnend macro-schijver is dit namelijk niet echt te doen....

Verwijderd

De volgende formule controleert in Excel of het nummer dat in cel A1 staat voldoet aan de 11-proef:

=ALS(REST((DEEL($A$1;1;1)*9+DEEL($A$1;2;1)*8 +DEEL($A$1;3;1)*7+DEEL($A$1;4;1)*6 +DEEL($A$1;5;1)*5+DEEL($A$1;6;1)*4+DEEL($A$1;7;1)*3 +DEEL($A$1;8;1)*2+DEEL($A$1;9;1)*1);11)<>0; "Bankrekeningnummer NIET correct";"Bankrekeningnummer correct")

Vul je in A1 een getal met minder cijfers, krijg je een foutmelding. Bij een getal met meer dan 9 cijfers, worden alleen de eerste 9 in de berekening betrokken.
Ik weet niet of er een controle bestaat op Gironummers.

[ Voor 4% gewijzigd door F_J_K op 24-11-2003 14:00 . Reden: layout gefixed O-) ]


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Hierboven is 'natuurlijk' mooier (geen VBA nodig), maar omdat ik toch al net begonnen was ( :+ ) met VBA:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Sub bankrekeningnummerproef()
    Dim tmp As Integer
    Dim tst As String
    tmp = 0
    tst = Trim(Str(Cells(1, 1).Value))
    Debug.Print tst
    If (tst > "999999999") Or (tst < "100000000") Then
        MsgBox (tst & " is geen waarschijnlijk bankrekeningnummer " _
         & "omdat het niet uit 9 cijfers bestaat.")
        Exit Sub
    End If
    For i = 1 To 9
        tmp = tmp + (10 - i) * Val(Mid(tst, i, 1))
    Next i
    Debug.Print tmp
    If tmp Mod 11 = 0 Then
        MsgBox (tst & " is waarschijnlijk een bankrekeningnummer " _
         & "correct.")
        Exit Sub
    Else
        MsgBox (tst & " is waarschijnlijk geen bankrekeningnummer, " _
         & "het voldoet niet aan de 11 test.")
    End If
End Sub

[ Voor 12% gewijzigd door F_J_K op 24-11-2003 14:01 . Reden: layout gefixored :) ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
Alvast bedankt (beetje trage reactie van mij), ik ga eens kijken hoe en wat. Misschien kan ik zorgen dat er in ieder geval bij een giro een P voor gezet wordt, even kijken wat interpay hierover zegt.....