Global Const TekenReeks = "BDFGHJKLNPRSTVXZ." Global Const CijferReeks = "0123456789." Global Const Scheiding = "-" Function Kenteken(Volgnummer As Long) As String 'Eerste kenteken is 00-BB-BB, met volgnummer 0 Dim TekenMax As Integer, CijferMax As Integer, TelTal As Integer Dim c As String, t As Long, kol(3) As String, Aantal As Integer TekenMax = Len(TekenReeks) CijferMax = Len(CijferReeks) TelTal = TekenMax 'Constructie 01-CD-EF: 1 * (teltal^0), 0 * (teltal^1), F * (teltal^2), E * (teltal^3), D * (teltal^4), C * (teltal^5) t = Volgnummer 'xx-Xx-xx Aantal = Int(t / WorksheetFunction.Power(TelTal, 5)) If Aantal >= TekenMax Then Aantal = TekenMax - 1 End If t = t - (Aantal * WorksheetFunction.Power(TelTal, 5)) kol(2) = Mid(TekenReeks, Aantal + 1, 1) 'xx-xX-xx Aantal = Int(t / WorksheetFunction.Power(TelTal, 4)) If Aantal >= TekenMax Then Aantal = TekenMax - 1 End If t = t - (Aantal * WorksheetFunction.Power(TelTal, 4)) kol(2) = kol(2) + Mid(TekenReeks, Aantal + 1, 1) 'xx-xx-Xx Aantal = Int(t / WorksheetFunction.Power(TelTal, 3)) If Aantal >= TekenMax Then Aantal = TekenMax - 1 End If t = t - (Aantal * WorksheetFunction.Power(TelTal, 3)) kol(3) = Mid(TekenReeks, Aantal + 1, 1) 'xx-xx-xX Aantal = Int(t / WorksheetFunction.Power(TelTal, 2)) If Aantal >= TekenMax Then Aantal = TekenMax - 1 End If t = t - (Aantal * WorksheetFunction.Power(TelTal, 2)) kol(3) = kol(3) + Mid(TekenReeks, Aantal + 1, 1) 'Xx-xx-xx Aantal = Int(t / WorksheetFunction.Power(TelTal, 1)) If Aantal >= CijferMax Then Aantal = CijferMax - 1 End If t = t - (Aantal * WorksheetFunction.Power(TelTal, 1)) kol(1) = Mid(CijferReeks, Aantal + 1, 1) 'xX-xx-xx If t >= CijferMax Then t = CijferMax - 1 End If kol(1) = kol(1) + Mid(CijferReeks, t + 1, 1) c = kol(1) + Scheiding + kol(2) + Scheiding + kol(3) Kenteken = c End Function Function KentekenVolgnummer(Kenteken As String) As Long 'Eerste kenteken is 01-AA-AA, met volgnummer 0 'Constructie 01-CD-EF: 1 * (teltal^0), 0 * (teltal^1), F * (teltal^2), E * (teltal^3), D * (teltal^4), C * (teltal^5) Dim c As String, t As Long, TekenMax As Integer, CijferMax As Integer, TelTal As Integer, Aantal As Integer TekenMax = Len(TekenReeks) CijferMax = Len(CijferReeks) TelTal = TekenMax c = UCase(Kenteken) Aantal = InStr(1, TekenReeks, Mid(c, 4, 1)) t = (Aantal - 1) * WorksheetFunction.Power(TelTal, 5) Aantal = InStr(1, TekenReeks, Mid(c, 5, 1)) t = t + (Aantal - 1) * WorksheetFunction.Power(TelTal, 4) Aantal = InStr(1, TekenReeks, Mid(c, 7, 1)) t = t + (Aantal - 1) * WorksheetFunction.Power(TelTal, 3) Aantal = InStr(1, TekenReeks, Mid(c, 8, 1)) t = t + (Aantal - 1) * WorksheetFunction.Power(TelTal, 2) Aantal = InStr(1, CijferReeks, Mid(c, 1, 1)) t = t + (Aantal - 1) * WorksheetFunction.Power(TelTal, 1) Aantal = InStr(1, CijferReeks, Mid(c, 2, 1)) t = t + (Aantal - 1) * WorksheetFunction.Power(TelTal, 0) KentekenVolgnummer = t End Function Function VolgendKenteken(KentekenNummer As String) As String Dim DitVolgnummer As Long, VolgendVolgnummer As Long DitVolgnummer = KentekenVolgnummer(KentekenNummer) VolgendVolgnummer = DitVolgnummer + 1 Do While InStr(1, Kenteken(VolgendVolgnummer), ".") > 0 VolgendVolgnummer = VolgendVolgnummer + 1 DoEvents Loop VolgendKenteken = Kenteken(VolgendVolgnummer) End Function