Метка «vba»

Давеча попали ко мне исходные данные в виде exel-файлов, в которых значения представлены нарастающим итогом (каждое значение за месяц равно значению за месяц + сумме значений всех месяцев, что до него). Данные нужны были срочно по каждому периоду, т.е. нужно в екселе получить значения по периодам, используя имеющийся нарастающий итог.

Внезапно не смог обнаружить на просторах сети решение этой несложной задачки. Тряхнул стариной VBA и накропал код, который влепил кнопке.

Мои задачи код решил. Пусть он поможет и другим.

Код со вложенными циклами и при должной оптимизации можно получить более шустрый и универсальный код. Готовый файл со всеми коменатми будет в аттаче.

Поехали.
Читать полностью »

На нашем предприятии несколько десятков удаленных территориально от головного офиса представительств, в каждом из которых имеется база с данными о клиентах каждого представительства. Исторические данные есть и в центральном офисе, но актуальные находятся только в представительстве. Каждая БД на MS SQL Server 2005. Изредка возникает необходимость получить актуальную информацию по всем представительствам в виде таблицы Excel. Например, получить что-то вроде:

select territory, count(customerid) from customer where managerid = 1000

До недавнего момента я тупо в MS SQL Server Management Studio менял вручную connect, прогонял скрипт на выборку данных для каждого удаленного офиса и копировал результаты на лист Экселя. Но как-то выдалась свободное время, и я решил автоматизировать процесс сбора данных с удаленных БД, используя старый добрый MS Access.
Читать полностью »

Я не умею программировать, но очень люблю!
Немного измененная цитата художника Васи Ложкина.
Статьей хочу поделиться опытом поднятия многопользовательской системы на VBA Excel.
На момент принятия решения о создании гибкого приложения, было порядка 7 макросов, работающих по большим объемам (несколько файлов от 20 тыс. строк до 370 тыс. строк), весящих от 50 килобайт до 12 мегабайт, каждый из которых был написан в соответствии со знаниями существующими на момент написания. Каждый макрос изменялся, дописывался, исправлялся в части ошибок, а учитывая, что этими макросами пользовались более 60 человек, не все из которых отслеживали изменения, постоянно дергали меня показывая очередную ошибку, которую я уже исправил и выслал на всех. Объяснять толпе народу как правильно пользоваться макросами, я бросил сразу, так как всегда выпадет из звена 2-3 человека, которые возьмут уже отформатированную таблицу в работу с макросами и доводы, мол я не могу предугадать кто и как изменяет таблицы, эти люди не понимают.

Необходимо было сделать один код, а не 60 копий каждого изменения, высланного по почте.
Читать полностью »

Хочу поделиться способом решения проблемы с отправкой больших файлов в Microsoft Outlook 2010 (я думаю с 2013 прокатит тоже).
Итак, исходные условия:
— MS Exchange Server 2010 — inhouse — админ доступа нет — автор просто пользователь
— Ограничения на общий объем писем 10Мб
— Есть пара Linux web-серверов в своем DMZ и админ доступ к корпоративному интранету
Надо:
— Организовать удобный механизм передачи больших файлов (очень больших)
— Не использовать сторонних провайдеров для хранения информации

Первой мыслью было использования сервисов типа dropbox, точнее их self-hosted аналогов типа ownCloud. Однако, разворачивать это все только для аттачментов показалось неадекватным.
Читать полностью »

В этой статье я бы хотел поделиться опытом автоматизации офисной, рутинной задачи по отправке сообщений группе клиентов.
И так, собственно, в чем вопрос: необходимо отправить электронные письма с вложением нескольким десяткам клиентам. При этом в поле получателя должен быть только один адрес, т.е. клиенты друг о друге не должны знать. Кроме того, не допускается установка дополнительного программного обеспечения, типа MaxBulk Mailer и ему подобного. В нашем распоряжении есть только Microsoft Office, а в данном конкретном случае — Microsoft Office 2013.
Читать полностью »

RPG игра в рабочей книге Excel

Бухгалтер из Торонто по имени Кэри Уолкин (Cary Walkin) никогда не занимался разработкой компьютерных игр, но в совершенстве освоил Excel. Этого оказалось достаточно для создания RPG-игры, которая работает на макросах VBA, встроенного языка программирования Excel.
Читать полностью »

image

Предисловие

Так уж сложилось, что на сегодняшний день много кому приходиться работать(писать макросы) на VBA в Excel. Некоторые макросы содержат сотни строк кода, которые приходиться выполнять каждый день (неделю, месяц, квартал и так далее) и, при этом, они занимают изрядное количество времени. Вроде бы и и процесс автоматизирован и человеческого вмешательства не нужно, но время, занимаемое выполнением макроса, может охватывать десятки минут, а то и несколько часов. Время, как говориться, — деньги и в этом посте я постараюсь значительно ускорить время выполнения Вашего макроса и, возможно, это положительно скажется на ваших делах, а в итоге и деньгах.
Читать полностью »

Доброго времени суток! Попытаемся обойти защиту Runpad Shell'а и получить доступ к управлению диспетчером задач, в этом злодеянии нам помогут макросы на языке VBA встроенные в линейку продуктов Microsoft Office. Теперь более подробнее рассмотрим с чем мы имеем дело. Читать полностью »

При работе в связке Excel+VBA бывает нужно хранить бинарные данные в контейнере, который накладывает ограничения содержимое. Для этих задач были разработан формат XXEncode. И вот, допустим, Вам захотелось иметь необходимые библиотеки и утилиты, связанные с вашим проектом VBA всегда при себе, внутри Рабочей книги .xls. Ниже я покажу, как я реализовал у себя хранение бинарных файлов в комментариях стандартных модулей проектов VBA.
Читать полностью »

Доброго времени суток.

В той или иной степени интересуюсь алгоритмами. Наткнулся на свежую статью
«Поиск повторений в двумерном массиве, или вычислительная сложность на примере» http://habrahabr.ru/post/141258/. Автор стати,Singerofthefall, довольно интересно рассказывает про решение задачи и оптимизации алгоритма. Очень интересно. Однако, по моему мнению, прежде всего необходимо было определить не алгоритм, а инструмент которым будет решаться задача. И вот инструмент был выбран неправильный, отсюда вся сложность и оптимизации.
Для решения задачи автора более всего подходили инструменты БД, соответственно и надо было их использовать.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js