Некоторые картинки не загружаются из РФ и РК, используйте VPN.
Показаны сообщения с ярлыком vba. Показать все сообщения
Показаны сообщения с ярлыком vba. Показать все сообщения

воскресенье, 7 апреля 2024 г.

Excel VBA Создать Word документы по списку из excel

Прилетела задача:

Имеем таблицу с колонками (допустим ФИО, контакты, кой какие данные)
Нужно для каждой строки создать отдельный Word документ по шаблону и заполнить данными из строки. Шаблоны могут быть разными.

В общем задача в голове разворачивается, я понимаю как ее сделать теми методами, что чаще использую - 1С. Но задачу надо решить силами Excel. Так как план работы "программы" есть, остается дело за малым - выразить его в VBA. Да, занимает чуть дольше, так как я практически не использую данный язык и приходится спрашивать у гугла - "как описывается цикл" и прочее, но результатом заказчик доволен.

К чему мы пришли:

  • В первой строке у колонок с нужными данными должны быть уникальные названия латиницей.
  • Обязательно должен быть столбец KeyWord, в нем содержится ключевой слово для определения текущего шаблона (Template_%KeyWord%.docx)
  • Также должен быть столбец FIO, и должен быть заполнен, иначе строка будет пропущена 
  • Шаблон должен находится в папке с файлом excel с макросом
  • В шаблоне используем "элемент управления содержимым". Название его соответствует названию колонки в excel документе


Если при работе программы элемент не будет найден, то он будет пропущен.

Все, дальше добавляем кнопку в excel документ и связываем его с этим макросом, все должно работать. Будут созданы файлы "Act %KeyWord%.docx" с необходимым заполнением. 

пятница, 6 января 2023 г.

Excel VBA Найти имя группировки

Допустим есть сгруппированная таблица, где в столбце С уникальные идентификаторы (артикулы) и нужно получить имя группировки, вот функция это и делает. Применение: =FindGroupName(ячейка_шаблон;диапазон)

Excel VBA Найти заголовки группировок и вывести с родителями

Заметка по VBA В excel. Макрос находит ячейки в диапазоне A7:A20000 на первом листе (по индексу) длиной более 3 и выводит списком. К ним прибавляет также уровень группировки, номер строки и номер строки родителя, пригодится при построении иерархий

Excel VBA Получить уровень группировки

Функция возвращает уровень группировки ячейки, применение =GetGroupLevel(A1)

 Function GetGroupLevel(RCell As Range)
    GetGroupLevel = Rows(RCell.Cells(1, 1).Row).OutlineLevel
End Function

А вот этот вариант работает только для текущего листа

Этот вариант работает с любого листа

Function GetGroupLevel(RCell As Range)
    GetGroupLevel = Worksheets(RCell.Parent.Name).Rows(RCell.Row).OutlineLevel
End Function

среда, 8 июля 2015 г.

EXCEL Найти и покрасить в диапазоне из диапазона(ов)




Все знакомы с условным форматированием?
УФ позволяет форматировать ячейки в зависимости от их значений. Один из вариантов:
Найти в диапазоне все вхождения "БЛА".
Создаем правило для диапазона ($A$1:$A$150) с