Страницы: 1
RSS
Нужно, чтобы в пользовательская функция при автозаполнении прописывала номера авианакладной при заданных условиях
 
Нужно, чтобы в пользовательская функция при автозаполнении прописывала номера авианакладной при заданных условиях.

Вот номер авианакладной: 298-25683626. Первые три цифры 298 – это префикс авиакомпании, последующие семь цифр 2568362 – это порядковый номер и последняя цифра – это так называемая контрольная цифра, она вычисляется следующим образом:
а) порядковый номер делится на 7;
б) полное целое число до запятой умножается на 7;
в) полученное число вычитается из первоначального порядкового номера авианакладной.

Необходимо, чтобы при автозаполнении в ячейках прописывались номера авианакладной, к примеру, в ячейке A1, выбираю пользовательскую функцию AWB (название моей функции) появляется окошко аргументы функции, где префикс авиакомпании, я пишу 298 и где порядковый номер, пишу 2568341, а контрольную цифру пользовательская функция рассчитывает сама по описанному наверху принципу. В итоге, получаю такой номер авианакладной: 298-25683416. Далее при автозаполнении, номера авианакладных должны автоматически прописываться в ячейках, допустим, если в ячейке A1 у нас получилось 298-25683416, то в ячейке A2 при автозаполнении должно быть 298-25683420.
Изменено: Ибрагим Белхороев - 16.10.2021 11:38:23
 
пока читал - прикинул формульный расчет как надо из порядкового на номер с контролькой выйти...  аглоритм в математике типа
Код
=A1&A1-ЦЕЛОЕ(A1/7)*7

дальше решил глянуть файл-пример.
а в примере нет НИЧЕГО кроме имени будущей UDF, на этом мой интерес к теме закончился ))
 
andylu, я просто не знаю, как это воплотить в пользовательской функции.

Вот контрольную цифру определил, только не знаю, как объединить префикс и порядковый номер вместе с контрольной цифрой, чтобы в ячейке отображался номер авианакладной?
Код
Function AWB(Префикс_авиакомпании As Variant, Порядковый_номер As Variant) As Variant
AWB = Порядковый_номер - Int(Порядковый_номер / 7) * 7
End Function
 
обьявите, сколько денег платите. решать ваши задачи бесплатно уже немного всех напрягло
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Мне тут помогли немного.
Код
Function AWB(Префикс_авиакомпании As Variant, Порядковый_номер As Variant) As String
    Dim l As Long
    l = Порядковый_номер - Int(Порядковый_номер / 7) * 7
    AWB = Префикс_авиакомпании & "-" & Порядковый_номер & l
End Function
Вот только не знаю как сделать так, чтобы при растягивание ячеек в пользовательской функции применялось автозаполнение таким образом, допустим в ячейке A1 у меня такой номер авианакладной  – 298-25683416, я растигиваю эту ячейку до A4 и получается так: в A2 будет 298-25683420, A3 = 298-25683431, A4 = 298-25683442. Как это реализовать?
Страницы: 1
Наверх