Авторизация

Рубрики блога


Рекомендуем



Последние комментарии

Облако тегов


Устами великих

"Странный этот мир, где двое смотрят на одно и то же, а видят полностью противоположное." © Агата Кристи

Мы Вконтакте

MS Office и VBA Рубрика содержит интересные решения, малоизвестные функции и возможности, надстройки и макросы, в общем, все то, что может сделать вашу работу в пакете программ MS Office (в первую очередь - Excel, Word, Access) более эффективной.
20
Окт

Цифры прописью в Excel на украинском и русском

рейтинг материал 5.0 (3) | количество просмотров 9608 | количество коментариев 2
Цифры прописью в счетах, накладных и прочих финансовых документах или отчетах, которые преобразуются автоматически из данных суммы в ячейке Excel при помощи макроса (сценария в VBA).
Download source

Совсем недавно, нужно было отредактировать внешний отчет для 1C, где помимо изменения структуры и текстовки отчета (в связи с изменениями стандартов), необходимо было также сделать в конце отчета итоговую сумму прописью (то есть цифры в текстовом виде, например, 1357,65 грн - Тисяча триста п'ятдесят сім грн шістдесят п'ять копійок). Как оказалось, в 1С уже прописан специальный скрипт, который выполняет функцию этой трансформации.

Практически сразу после этого, потребовалось сделать нечто похожее прямо в Excel. В экселевском отчете внизу после ячейки подбивающей итоги необходимо указать эту сумму прописью. Среди стандартных функций экселя нет такой, которая бы выполняла такое преобразование, но сделать это можно с помощью пользовательской функции написанной в VBA.

Допустим, в xls-файле какая-то ячейка (например, E13) является итоговой, но число в ней представлено, естественно, в числовом формате, а вам нужна еще и сумма прописью.

1. Выделите и объедините диапазон ячеек, в котором будет указана сумма прописью (например, A14–K14).

2. Щелкните левой кнопкой мыши в строке формул и введите следующий текст (укажите вместо E13 нужную вам ячейку):

=ЕСЛИ((E13)<=0;"Сумма прописью:_______________________________________";"Сумма прописью: "&FirstLetter(CurText(E13)))

3. Теперь займемся программированием:

Если Excel 2003
– откройте меню Сервис –> Макрос –> Редактор Visual Basic (или нажмите Alt + F11);

Если Excel 2007 или 2010
Если вкладка Разработчик недоступна, выполните следующие действия для ее отображения:

Нажмите кнопку Microsoft Office , а затем щелкните Параметры Excel. В категории Основные в группе Основные параметры работы с Excel установите флажок Показывать вкладку "Разработчик" на ленте, а затем нажмите кнопку ОК. После этого во вкладке "Разработчик" меню для работы с макросами будет выглядеть так:

где нажимаем кнопочку Visual Basic

Далее для всех версий MS Office, инструкция одинакова:

  • в открывшемся окне Microsoft Visual Basic выберите меню Insert –> Module;
  • откроется окно Module1 (Code), введите (скопируйте и вставьте) в этом окне (без изменений!) код из текстовом файла rus.txt, если нужен русский вариант и единицы измерения рубли или ukr.txt, если нужен украинский вариант. Сохраните изменения в файле. Пользуйтесь!

Примечания

1. Рекомендации данной статьи предназначены для Excel начиная с версий Microsoft Office XP/2003 и выше, в других версиях возможны незначительные отклонения.

2. Чтобы созданная нами программа работала:
– откройте меню Сервис –> Макрос –> Безопасность…;
– в открывшемся окне Безопасность на вкладке Уровень безопасности установите переключатель Низкая, на вкладке Надежные издатели установите флажки Доверять всем установленным надстройкам и шаблонам и Доверять доступ к Visual Basic Project –> OK.

Ну собственно все, в архиве помимо необходимых кодов прилагается также файл эксель с работающим примером.

Download source
ulka@mail.ru Спасибо большое за макрос!!!
Только вместо слов, пишет вопросы ??? ??? ?????? ???'?????? ????????? ???. 00 ???.
Спам
написал(а)
06 Июн 2012
в 17:27
0

AleX_X Скопируйте код из блокнота в Microsoft Word, а уже затем в модуль VBA, должно помочь. Спам
написал(а)
13 Июл 2013
в 22:53
0

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]