Ingrid,
Jouw formule verdient de schoonheidsprijs ;-)
Ik heb een paar jaar geleden de volgende functie in VBA geschreven, waarbij
het aantal cijfers variabel is. Dit had ik gedaan om hetzelfde type
beveiliging tegen typefouten op grotere getallen te kunnen toepassen.
Deze functie kan in cellen opgeroepen worden als
=qdIsValidBank("0123456789";10)
of als
=qdIsValidBank("123456789") waarbij standaard de waarde 10 gebruikt wordt
voor iDigits
'-------
Public Function qdIsValidBank(sBank As String, Optional iDigits As Integer =
10) As Boolean
' (c) Copyright 2004 Quandan.
' Deze functie is afkomstig uit het vrij toegankelijke tips-archief
van quandan.
Dim lSum As Long
Dim iCount As Integer
If Len(sBank) < iDigits Then
sBank = String(iDigits - Len(sBank), "0") + sBank
ElseIf Len(sBank) > iDigits Then
Exit Function 'Result is False
End If
For iCount = 1 To iDigits
lSum = lSum + (Val(Mid(sBank, iCount, 1)) * (iDigits + 1 - iCount))
Next iCount
If lSum = 0 Then Exit Function 'Result is False
If lSum Mod (iDigits + 1) <> 0 Then Exit Function 'Result is False
qdIsValidBank = True
End Function
'-------
Met vriendelijke groet,
Marcel Kreijne
Quandan - steunpunt voor spreadsheetgebruikers
www.quandan.nl
Post by Ingrid Baplue=ALS(REST(SOM(DEEL(A1;RIJ(1:9);1)*(10-RIJ(1:9)));11);"fout";"juist")
invoeren als matrixformule met [Ctrl]+[Shift]+[Enter]
--
Ingrid Baplue
Microsoft MVP - Excel
http://users.pandora.be/ingrid/excel/
Dit bericht is geplaatst in een nieuwsgroep. Post je evt antwoord of
vervolgvraag graag in de nieuwsgroep a.u.b.
Post by HermaWie helpt.
Met welke formule kan ik in excel de zgn 11-proef van een
bankrekeningnummer uitvoeren.
bankrekening heeft 9 cijfers
som van: 1e cijfer x 9, 2e cijfer x 8, 3e cijfer x 7, 4e
cijfer x 6, 5e cijfer x 5, 6e cijfer x 4, 7e cijfer x 3,
8e cijfer x 2, 9e cijfer x 1 = een getal deelbaar door 11
Herma