Здравствуйте товарищи.
Помогите реализовать на VBA Exel 2010 алгоритм проверки СНИЛС при вводе номера снилс в textbox на userForm, выделить красным если неправильный СНИЛС (т.е. контрольное значение не соответствует номеру) и в этом случае вывести сообщение "Проверьте правильность ввода СНИЛС"
Алгоритм проверки контрольного числа КАРТОЧКИ ПЕНСИОННОГО СТРАХОВАНИЯ:
Номер карточки пенсионного страхования (он же СНИЛС) проверяется на валидность контрольным числом. СНИЛС имеет вид: «XXX-XXX-XXX YY», где XXX—XXX-XXX — собственно номер, а YY — контрольное число.
Проверка контрольного числа Страхового номера проводится только для номеров больше номера 001—001-998
Контрольное число СНИЛС рассчитывается следующим образом:
1. Каждая цифра СНИЛС умножается на номер своей позиции (позиции отсчитываются с конца)
2. Полученные произведения суммируются
3. Если сумма меньше 100, то контрольное число равно самой сумме
4. Если сумма равна 100 или 101, то контрольное число равно 00
5. Если сумма больше 101, то сумма делится нацело на 101 и контрольное число определяется остатком от деления аналогично пунктам 3 и 4.
Конкретные примеры:
Указан СНИЛС 112-233-445 95
Проверяем правильность контрольного числа:
цифры номера 1 1 2 2 3 3 4 4 5
номер позиции 9 8 7 6 5 4 3 2 1
Сумма = 1х9 + 1х8 + 2х7 + 2х6 + 3х5 + 3х4 + 4х3 + 4х2 + 5х1 = 95
95 / !101! =95
Контрольное число 95 - указано верно.
Помогите реализовать на VBA Exel 2010 алгоритм проверки СНИЛС при вводе номера снилс в textbox на userForm, выделить красным если неправильный СНИЛС (т.е. контрольное значение не соответствует номеру) и в этом случае вывести сообщение "Проверьте правильность ввода СНИЛС"
Алгоритм проверки контрольного числа КАРТОЧКИ ПЕНСИОННОГО СТРАХОВАНИЯ:
Номер карточки пенсионного страхования (он же СНИЛС) проверяется на валидность контрольным числом. СНИЛС имеет вид: «XXX-XXX-XXX YY», где XXX—XXX-XXX — собственно номер, а YY — контрольное число.
Проверка контрольного числа Страхового номера проводится только для номеров больше номера 001—001-998
Контрольное число СНИЛС рассчитывается следующим образом:
1. Каждая цифра СНИЛС умножается на номер своей позиции (позиции отсчитываются с конца)
2. Полученные произведения суммируются
3. Если сумма меньше 100, то контрольное число равно самой сумме
4. Если сумма равна 100 или 101, то контрольное число равно 00
5. Если сумма больше 101, то сумма делится нацело на 101 и контрольное число определяется остатком от деления аналогично пунктам 3 и 4.
Конкретные примеры:
Указан СНИЛС 112-233-445 95
Проверяем правильность контрольного числа:
цифры номера 1 1 2 2 3 3 4 4 5
номер позиции 9 8 7 6 5 4 3 2 1
Сумма = 1х9 + 1х8 + 2х7 + 2х6 + 3х5 + 3х4 + 4х3 + 4х2 + 5х1 = 95
95 / !101! =95
Контрольное число 95 - указано верно.