politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...

VBA Excel. Создание макроса. Как реализовать?

Доброго времени.
Стоит следующая задача.
Есть прайс в excel
Строки 1-3 статические не прокручиваются
Нужно сделать checkbox или radio.
Если выбрано хоть одно из значений. строка попадает на вывод новой страницы, где формируется статическая страница для печати где будет шапка с реквизитами и выбранные строки.
Так же что бы строка с названием группы товара, как на картинке "каркасы для швабр", попадала, если выбран хоть один из checkbox. Если в столбцах БЕЗ НДС или С НДС нет ни одного выбранного checkbox, то данный столбец не должен попадать в сформированную для печати страницу.
Вывод общей цены с ндс и без внизу колонок
Знаю, как реализовать такое на PHP, JS. Но задача стоит сделать в excel/
Подскажите ресурс хотя бы плз, где почитать. Поверхностно понимаю, что нужно будет делать.

P. S. Рассмотрю взаимную помощь моих знаний.

65bada6e1f4c4e59bb00c1042a5f0a87.png
  • Вопрос задан
  • 325 просмотров
Решения вопроса 1
@Beltoev
Живу в своё удовольствие
Нужно сделать checkbox или radio.

В Excel есть данные элементы, но если их будет много на странице (от 50-100), то появятся заметные лаги.
Я такую проблему решал, делая из обычных ячеек checkbox-ы. То есть, как-нибудь помечаем ячейки с checkbox-ами (отдельная колонка, отдельный стиль, именованный диапазон, массив с адресами, что-то ещё) и вешаем свой обработчик на событие Worksheet_SelectionChange. В обработчике проверяем, является ли кликнутая ячейка чекбоксом и, если является, ставим/убираем галочку, если нет - просто пропускаем событие.
Тут ещё нужно подумать, копировать ли сразу товар на страницу печати при клике на чекбокс, либо добавить кнопку копирования, чтобы пользователь после всех отметок мог "сгенерировать" страницу печати. Уверен, остановитесь на втором варианте, так как намного проще в реализации + не будет тормозов от пересчетов, когда страница печати будет большой.

Так же что бы строка с названием группы товара, как на картинке "каркасы для швабр", попадала, если выбран хоть один из checkbox. Если в столбцах БЕЗ НДС или С НДС нет ни одного выбранного checkbox, то данный столбец не должен попадать в сформированную для печати страницу.

Дублируете категории на странице печати, делаете им высоту в 0 px. Попутно категории можно сделать именованными диапазонами.
Если выбранный товар попадает в скрытую категорию - просто делаете высоту > 0 px и добавляете ниже строку с товаром.

Вывод общей цены с ндс и без внизу колонок

Ну, это обычной формулой СУММ решается. На VBA можно динамически диапазоны генерировать ей на вход.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы