Задача

Необходимо доработать существующий Excel-файл (.xlsm) с тремя листами и реализовать макрос на VBA, запускаемый по нажатию кнопки «Обновить». Макрос проверяет данные из справочника и формирует итоговую сводку.

Исходные данные

  • Sheet1 (Данные): содержит столбцы «ИКПУ код», «Количество» и «Результат».
  • Sheet2 (Справочник): содержит столбцы «ИКПУ код», «Единица измерения» и «Лимит».
  • Лист «Автоматизация»: в него будет выводиться итоговая сводка

Логика проверки

  • Если в справочнике единица измерения - «килограмм»:
    • Верными считаются только значения с запятой как разделителем (например, 0,7; 2,5).
    • Целые числа (1, 4) и значения с точкой считаются неверными.
  • Если в справочнике единица измерения - «шт»:
    • Верными считаются только целые числа.
    • Любые дробные значения (включая с запятой и с точкой) считаются неверными.
  • Валюация выполняется построчно до достижения лимита из справочника. Все строки после превышения лимита считаются неверными.

Требования к итоговой сводке (лист «Автоматизация»)

Сводка формируется макросом, без использования формул:

  • ИКПУ код (обязательно текстовый формат, без преобразования в научную нотацию 1,7E+15)
  • Общее количество
  • Количество «верно» (сумма верифицированных значений)
  • Количество верных строк
  • Количество неверных строк
  • Общее количество строк

Требования к реализации

  • Макрос должен стабильно работать в активной книге.
  • Код без ошибок и критических нарушений.
  • Итоговый файл - .xlsm с рабочей кнопкой.
  • ИКПУ коды обрабатываются строго как текст.