Как в excel цифры сделать прописью

Блок ячеек с формулами

Скачайте файл Excel с блоком ячеек с формулами, преобразующими число в сумму прописью, и примером размещения ссылок.

Работать с блоком ячеек чрезвычайно просто:

  • Скопируйте диапазон с формулами и вставьте в нужный файл.
  • Замените в блоке входную ссылку рядом со словом «Вход».
  • В ячейку, где должна отображаться сумма прописью, добавьте ссылку на выходную ячейку блока (рядом со словом «Выход»).

Пример размещения ссылок смотрите в скачанном файле. При желании, диапазон ячеек с формулами можно скрыть.

Преимущества блока ячеек с формулами:

  • это самый простой для реализации способ автоматизации перевода числовых выражений в сумму прописью;
  • файлы с блоками ячеек правильно работают у других пользователей программы Excel без дополнительного разрешения выполнения макросов.

Недостатки блока ячеек с формулами:

  • не совсем удобно для пользователя каждый раз переносить блок ячеек с формулами из файла в файл;
  • если диапазон ячеек с формулами скрыт или размещен вне видимого экрана, можно случайно удалить часть формул вместе с удаляемыми строками или столбцами.

Этих недостатков лишен более изящный способ преобразования числового денежного значения в текст с помощью пользовательской функции «СуммаПрописью».

Преобразование с помощью макросов Excel

Можно написать собственную функцию, которая произведет конвертацию суммы прописью. Нажмите сочетание ALT+F11 и в открывшемся разработчике Excel VBA вставьте новый модуль.В него добавьте следующий код.

Теперь эту функцию можно вызвать обычным путем и получить сумму прописью. Она находится в разделе функций Excel «Определенные пользователем».В качестве аргумента укажите адрес с числом.Перевод в сумму прописью осуществляется только для целых чисел.Дробное число требует дополнительной формулы:

Вместо ячейки A7 подставляйте свой адрес. Копейки в таком исполнении будут выводиться в виде числа.Мы рассмотрели все способы представления суммы прописью в Excel. Выбирайте для себя самый удобный и пользуйтесь с удовольствием!

Office 365, AD, Active Directory, Sharepoint, C#, Powershell. Технические статьи и заметки.

Excel. Сумма прописью без макросов и надстроек

Дано: Excel c числами и суммами в рублях в ячейках. Задача: написать данные числа прописью без использования макросов и каких-либо надстроек программы Excel, т.е. написать число прописью при помощи стандартных формул.

Пример файла excel с таким решением можно скачать здесь. См. также Сумма прописью онлайн (если просто нужно получить результат). Что означает прописью? Данный файл производит следующие манипуляции с числами:

1. Формула 1 преобразовывает число в сумму прописью следующего формата: «0 (пропись) рублей 00 копеек»

2. Формула 2 преобразовывает число в сумму прописью следующего формата: «Пропись рублей 00 копеек»

3. Формула 3 просто переводит число в текст: число = пропись

Вот формулы, которые пишут сумму прописью:

При необходимости формулу можно подогнать под нужный формат.

Как использовать данную формулу? Вы можете взять файл примера и внести в него свои данные, чтобы получить результат. Если же у Вас уже есть готовый файл с заполненными данными и Вам необходимо добавить возможность написания суммы прописью, то чтобы формула заработала, необходимо сделать некоторые подготовительные действия, а именно добавить справочники, которые использует формула. В данном примере справочники заданы как именованные диапазоны (это решение хорошо тем, что пользователь эти диапазоны не видит на листах и соответственно не сможет лишний раз что-то испортить).

Итак, нам необходимо сделать следующие справочники:

Имя диапазона: n_1 Диапазон: =

Имя диапазона: n_2 Диапазон: =

Имя диапазона: n_3 Диапазон: =

Имя диапазона: n_4 Диапазон: =

Имя диапазона: n_5 Диапазон: =

Имя диапазона: n0 Диапазон: =»000000000000″&ПСТР(1/2;2;1)&»00″

Имя диапазона: n0x Диапазон: =ЕСЛИ(n_3=1;n_2;n_3&n_1)

Имя диапазона: n1x Диапазон: =ЕСЛИ(n_3=1;n_2;n_3&n_5)

Имя диапазона: мил Диапазон: =

Имя диапазона: тыс Диапазон: =

Чтобы создать справочник таких диапазонов, переходим на вкладку «Формулы» — «Диспетчер имен«:

В открывшемся окне нажимаем кнопку «Создать» и в форме вводим данные первого диапазона из таблицы:

Далее таким же образом вводим все остальные диапазоны из таблицы:

Ручной ввод функции в ячейках

Вместо того, чтобы проходить шаги с открытием «Менеджера функций» и поиском нужной функции, можно ввести формулу сразу в ячейку. Выясним, как заполнить таблицу без использования панели инструментов.

  1. Сначала нужно выбрать пустую ячейку, куда будет записана формула. Кликнем по ней дважды – внутри появится поле для ввода данных с клавиатуры.
  2. Запишем в пустое поле следующую формулу: =Сумма_прописью().

12

  1. В скобках нужно указать ячейку, содержимое которой будет записано словами.

13

  1. Нажимаем клавишу «Enter». В ячейках появится число или результат действия, выраженное прописью.

14

Есть возможность записать число словами без создания таблицы – для этого нужна только формула и начальное число или действие. Необходимо так же написать формулу в пустую ячейку, но в скобках, вместо обозначений по горизонтали и вертикали, написать число или выражение. Закрываем скобки и жмем «Enter» – в ячейке появляются нужные числительные.

15

Использование надстройки

В Эксель нет встроенного инструмента, который бы помогал автоматически переводить цифры в слова. Поэтому для решения поставленной задачи используют специальные надстройки.

Одной из самых удобных является надстройка NUM2TEXT. Она позволяет поменять цифры на буквы через Мастер функций.

  1. Открываем программу Excel и переходим во вкладку «Файл».

Перемещаемся в раздел «Параметры».

В активном окне параметров переходим в раздел «Надстройки».

Открывается небольшое окно надстроек Excel. Жмем на кнопку «Обзор…».

В открывшемся окне ищем предварительно скачанный и сохраненный на жесткий диск компьютера файл надстройки NUM2TEXT.xla. Выделяем его и жмем на кнопку «OK».

Мы видим, что данный элемент появился среди доступных надстроек. Ставим галочку около пункта NUM2TEXT и жмем на кнопку «OK».

Запускается Мастер функций. В полном алфавитном перечне функций ищем запись «Сумма_прописью». Её раньше не было, но она появилась тут после установки надстройки. Выделяем эту функцию. Жмем на кнопку «OK».

Отрывается окно аргументов функции Сумма_прописью. Оно содержит только одно поле «Сумма». Сюда можно записать обычное число. Оно в выделенной ячейке отобразиться в формате записанной прописью денежной суммы в рублях и копейках.

Можно в поле занести адрес любой ячейки. Это делается либо путем ручной записи координат этой ячейки, либо простым кликом по ней в то время, когда курсор находится в поле параметра «Сумма». Жмем на кнопку «OK».

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

Функцию можно также записать и вручную без вызова мастера функций. Она имеет синтаксис Сумма_прописью(сумма) или Сумма_прописью(координаты_ячейки). Таким образом, если вы в ячейке запишите формулу =Сумма_прописью(5) , то после нажатия кнопки ENTER в этой ячейке отобразиться надпись «Пять рублей 00 копеек».

Если вы введете в ячейку формулу =Сумма_прописью(A2) , то в таком случае, любое число, внесенное в ячейку A2 будет отображаться тут денежной суммой прописью.

Как видим, несмотря на то, что в Excel нет встроенного инструмента для преобразования чисел в сумму прописью, эту возможность можно довольно легко получить, просто установив необходимую надстройку в программу.

Office 365, AD, Active Directory, Sharepoint, C#, Powershell. Технические статьи и заметки.

Excel. Сумма прописью без макросов и надстроек

Дано: Excel c числами и суммами в рублях в ячейках. Задача: написать данные числа прописью без использования макросов и каких-либо надстроек программы Excel, т.е. написать число прописью при помощи стандартных формул.

Пример файла excel с таким решением можно скачать здесь. См. также Сумма прописью онлайн (если просто нужно получить результат). Что означает прописью? Данный файл производит следующие манипуляции с числами:

1. Формула 1 преобразовывает число в сумму прописью следующего формата: «0 (пропись) рублей 00 копеек»

2. Формула 2 преобразовывает число в сумму прописью следующего формата: «Пропись рублей 00 копеек»

3. Формула 3 просто переводит число в текст: число = пропись

Вот формулы, которые пишут сумму прописью:

При необходимости формулу можно подогнать под нужный формат.

Как использовать данную формулу? Вы можете взять файл примера и внести в него свои данные, чтобы получить результат. Если же у Вас уже есть готовый файл с заполненными данными и Вам необходимо добавить возможность написания суммы прописью, то чтобы формула заработала, необходимо сделать некоторые подготовительные действия, а именно добавить справочники, которые использует формула. В данном примере справочники заданы как именованные диапазоны (это решение хорошо тем, что пользователь эти диапазоны не видит на листах и соответственно не сможет лишний раз что-то испортить).

Итак, нам необходимо сделать следующие справочники:

Имя диапазона: n_1 Диапазон: =

Имя диапазона: n_2 Диапазон: =

Имя диапазона: n_3 Диапазон: =

Имя диапазона: n_4 Диапазон: =

Имя диапазона: n_5 Диапазон: =

Имя диапазона: n0 Диапазон: =»000000000000″&ПСТР(1/2;2;1)&»00″

Имя диапазона: n0x Диапазон: =ЕСЛИ(n_3=1;n_2;n_3&n_1)

Имя диапазона: n1x Диапазон: =ЕСЛИ(n_3=1;n_2;n_3&n_5)

Имя диапазона: мил Диапазон: =

Имя диапазона: тыс Диапазон: =

Чтобы создать справочник таких диапазонов, переходим на вкладку «Формулы» — «Диспетчер имен«:

В открывшемся окне нажимаем кнопку «Создать» и в форме вводим данные первого диапазона из таблицы:

Далее таким же образом вводим все остальные диапазоны из таблицы:

С помощью VBA

Вот еще один способ на любителя. Конечно создать сумму прописью в Excel с помощью макроса не самый распространённый способ, но им достаточно часто пользовались и пользуются до сих пор. Большой сложности он не представляет, вам нужно:

  • Комбинацией горячих клавиш ALT+F11 вызвать редактор Visual Basic;
  • С помощью меню «Insert» — «Module», создать пустой новый модуль;
  • Скопировать предоставленный код макроса в тело модуля.

Получается готовая пользовательская функция VBA, которая умеет превращать любую сумму от 0 до 9 999 999 в ее текстовое воплощение, создается сумма прописью.

Код нужного макроса выглядит так:

Function СУММАПРОПИСЬЮ(n As Double) As String

Dim Nums1, Nums2, Nums3, Nums4 As Variant

Nums1 = Array(«», «один «, «два «, «три «, «четыре «, «пять «, «шесть «, «семь «, «восемь «, «девять «)

Nums2 = Array(«», «десять «, «двадцать «, «тридцать «, «сорок «, «пятьдесят «, «шестьдесят «, «семьдесят «, _

«восемьдесят «, «девяносто «)

Nums3 = Array(«», «сто «, «двести «, «триста «, «четыреста «, «пятьсот «, «шестьсот «, «семьсот «, _

«восемьсот «, «девятьсот «)

Nums4 = Array(«», «одна «, «две «, «три «, «четыре «, «пять «, «шесть «, «семь «, «восемь «, «девять «)

Nums5 = Array(«десять «, «одиннадцать «, «двенадцать «, «тринадцать «, «четырнадцать «,

«пятнадцать «, «шестнадцать «, «семнадцать «, «восемнадцать «, «девятнадцать «)

If n <= 0 Then

СУММАПРОПИСЬЮ = «ноль»

Exit Function

End If

‘разделяем число на разряды, используя вспомогательную функцию Class

ed = Class(n, 1)

dec = Class(n, 2)

sot = Class(n, 3)

tys = Class(n, 4)

dectys = Class(n, 5)

sottys = Class(n, 6)

mil = Class(n, 7)

decmil = Class(n, 8)

‘проверяем миллионы

Select Case decmil

Case 1

mil_txt = Nums5(mil) & «миллионов «

GoTo www

Case 2 To 9

decmil_txt = Nums2(decmil)

End Select

Select Case mil

Case 1

mil_txt = Nums1(mil) & «миллион «

Case 2, 3, 4

mil_txt = Nums1(mil) & «миллиона «

Case 5 To 20

mil_txt = Nums1(mil) & «миллионов «

End Select

sottys_txt = Nums3(sottys)

‘проверяем тысячи

Select Case dectys

Case 1

tys_txt = Nums5(tys) & «тысяч «

GoTo eee

Case 2 To 9

dectys_txt = Nums2(dectys)

End Select

Select Case tys

Case 0

If dectys > 0 Then tys_txt = Nums4(tys) & «тысяч «

Case 1

tys_txt = Nums4(tys) & «тысяча «

Case 2, 3, 4

tys_txt = Nums4(tys) & «тысячи «

Case 5 To 9

tys_txt = Nums4(tys) & «тысяч «

End Select

If dectys = 0 And tys = 0 And sottys 0 Then sottys_txt = sottys_txt & » тысяч «

sot_txt = Nums3(sot)

‘проверяем десятки

Select Case dec

Case 1

ed_txt = Nums5(ed)

GoTo rrr

Case 2 To 9

dec_txt = Nums2(dec)

End Select

ed_txt = Nums1(ed)

‘формируем итоговую строку

СУММАПРОПИСЬЮ = decmil_txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt

End Function

‘вспомогательная функция для выделения из числа разрядов

Private Function Class(M, I)

Class = Int(Int(M — (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I — 1))

End Function

Сохраняете внесенные изменения и теперь можно пользоваться новой функцией, как и прочими, она отображается в «Мастере функций» в категории «Определенные пользователем» или же просто вручную ввести ее в ячейке указав какую сумму необходимо сделать прописной.

Но как видите, макрос пишет прописью суммы, только целые числа, а вот для получения еще и копеек, эту конструкцию нужно доработать использованием следующей функции:

=СУММАПРОПИСЬЮ(A3)&» руб. «&ТЕКСТ((A3-ЦЕЛОЕ(A3))*100;»00″)&» коп.»

Приставку «Module2» в моей формуле можете опустить, так как таким образом, программа разделяет 2 похожие формулы, одна от установленных надстроек, а вторая от макроса.

А на этом у меня всё! Я очень надеюсь, что всё о том, как ваши цифры сделать прописными вам понятно. Буду очень благодарен за оставленные комментарии, так как это показатель читаемости и вдохновляет на написание новых статей! Делитесь с друзьями прочитанным и ставьте лайк!

Не забудьте поблагодарить автора!

Что такое ограбление банка по сравнению с основанием банка?Бертольт Брехт​

>Число прописью в Excel 2003 и Excel 2007

Создание сумм прописью с помощью формул

Это вполне осуществимый вариант, но очень громоздкий. Формула, которая может самостоятельно преобразовывать числа в буковки и правильно орфографически написать сумму прописью получится очень большой. В случае, когда вы захотите упростить формулу, вам нужно будет отдельный блок формул, который буде и заниматься всеми преобразованиями. Единственное преимущество от использования формулы, это когда вы разберетесь с ней, то самостоятельно сможете ее изменять: разрядность, валюту, склонение и т.п.

Ради общего интереса я предоставлю вам пример файла с работающей формулой, которую я нашёл на excelworld.ru, поскольку самостоятельно формульным решением задачи я не занимался, но считаю нужным предоставить весь наработанный или собранный материал. Скачать пример можно по этой ссылке.

С помощью пользовательской функции

Как мой взгляд, это самое оптимальное и простое, относительно конечно, решение поставленного вопроса. Вы просто включаете функцию и пользуетесь ее с удовольствием.

Для этого вам необходимо выполнить некоторые действия. Сначала скачиваете файл надстройки здесь. После, переносите его в папку AddIns, которую можно найти по пути C:Documents and SettingsUserApplication DataMicrosoftAddIns, только вы вместо «User» подставляете имя вашего пользователя Windows. Еще может возникнуть проблема в отображении папки «Application Data», она может быть скрыта, тогда вам в настройках «Свойства папки» нужно активировать пункт «Показать скрытые файлы и папки». Теперь собственно и приступим к включении этой надстройки. В Excel выбираем «Файл» — «Параметры» — «Надстройки». В диалоговом окне «Настройки» ставим галочку напротив включаемой надстройки «Сумма Прописью» и нажимаем «ОК». Следующим шагом, ставим курсор на нужную ячейку и вызываем «Мастер функций». В разделе «Категория» выбираем пункт «Определенные пользователем» и теперь весть список встроенных функций по написанию сумм прописью нам доступен. Кстати как видите, доступен даже выбор функций в разрезе валют. Сразу замечу, что надстроек бывает много, есть и более расширенные, но эта меня полностью устраивает, вот я ее и описываю. В результате мы получаем возможность получить следующие данные:

PROИТ

Office 365, AD, Active Directory, Sharepoint, C#, Powershell. Технические статьи и заметки.

Excel. Сумма прописью без макросов и надстроек

Дано: Excel c числами и суммами в рублях в ячейках. Задача: написать данные числа прописью без использования макросов и каких-либо надстроек программы Excel, т.е. написать число прописью при помощи стандартных формул.

Пример файла excel с таким решением можно скачать здесь. См. также Сумма прописью онлайн (если просто нужно получить результат). Что означает прописью? Данный файл производит следующие манипуляции с числами:

1. Формула 1 преобразовывает число в сумму прописью следующего формата: «0 (пропись) рублей 00 копеек»

2. Формула 2 преобразовывает число в сумму прописью следующего формата: «Пропись рублей 00 копеек»

3. Формула 3 просто переводит число в текст: число = пропись

Вот формулы, которые пишут сумму прописью:

При необходимости формулу можно подогнать под нужный формат.

Как использовать данную формулу? Вы можете взять файл примера и внести в него свои данные, чтобы получить результат. Если же у Вас уже есть готовый файл с заполненными данными и Вам необходимо добавить возможность написания суммы прописью, то чтобы формула заработала, необходимо сделать некоторые подготовительные действия, а именно добавить справочники, которые использует формула. В данном примере справочники заданы как именованные диапазоны (это решение хорошо тем, что пользователь эти диапазоны не видит на листах и соответственно не сможет лишний раз что-то испортить).

Итак, нам необходимо сделать следующие справочники:

Имя диапазона: n_1 Диапазон: =

Имя диапазона: n_2 Диапазон: =

Имя диапазона: n_3 Диапазон: =

Имя диапазона: n_4 Диапазон: =

Имя диапазона: n_5 Диапазон: =

Имя диапазона: n0 Диапазон: =»000000000000″&ПСТР(1/2;2;1)&»00″

Имя диапазона: n0x Диапазон: =ЕСЛИ(n_3=1;n_2;n_3&n_1)

Имя диапазона: n1x Диапазон: =ЕСЛИ(n_3=1;n_2;n_3&n_5)

Имя диапазона: мил Диапазон: =

Имя диапазона: тыс Диапазон: =

Чтобы создать справочник таких диапазонов, переходим на вкладку «Формулы» — «Диспетчер имен«:

В открывшемся окне нажимаем кнопку «Создать» и в форме вводим данные первого диапазона из таблицы:

Далее таким же образом вводим все остальные диапазоны из таблицы:

Использование программы печати суммы прописью в Excel (Ексел)

Работа с ней ведется через использование функций Excel. Введите в первую ячейку третьей строки формулу =СуммаПрописью(836) и вы увидите результат вычислений:

Введите после этого в первую ячейку второй строки формулу = СуммаПрописью (A1). Так как пока в ячейку A1 ничего не введено, то результатом будет:

После того, как в первую ячейку будет введено число, например, 3743917034,51, результат изменится на:

При вводе другого числа результат соответственно изменится. Кроме печати суммы прописью доступна стала и еще одна дополнительная функция. Введите в первую ячейку число 582,43, а в любую свободную ячейку формулу =ЧислоПрописью(A1) . Результатом будет пятьсот восемьдесят два , то есть первая буква уже не прописная, копейки отброшены и нет названия рублей. Также имеется возможность вывода суммы для названий женского рода – пятьсот восемьдесят две . Для этого следует использовать формулу =ЧислоПрописью(A1;ЛОЖЬ) . Если второй параметр опущен, выводится сумма для названий мужского рода.

Функция сумма прописью на русском языке

После установки надстройки VBA-Excel добавится функционал для вставки суммы прописью. Он содержит удобную форму для ввода (см. рисунок справа), а также функцию СУММАПРОПИСЬЮ, которой можно пользоваться так же как и любой встроенной в Excel.

Вы сможете указать число прописью в любом падеже, а также выбрать формат вывода, который необходим в конкретном случае.

Вы можете указать сумму прописью в договоре в рублях (как с копейками так и без), в долларах США или евро (с центами или без). Помимо суммы договора можно прописывать прописью и срок в календарных или рабочих днях. Можно указывать количество товара прописью в штуках.

Функционал достаточно гибкий и позволяет настраивать отображение скобок, формат дробной части, указывать сумму с заглавной или прописной буквы и многое другое.

Вставка суммы прописью через пользовательскую форму

Наиболее простой способ вставить сумму прописью – это заполнить специальную форму.

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

Второй способ вставить сумму прописью – это ввести формулу в ячейку: =СУММАПРОПИСЬЮ(A1), где A1 – ссылка на ячейку с формулой.

Далее рассмотрим подробнее синтаксис функции.

Подробный синтаксис функции

Для использования функции не обязательно постоянно вызывать форму с параметрами. Функцию можно использовать также как и прочие функции Excel. Функция имеет следующие переменные:

=СУММАПРОПИСЬЮ(Число; ; ; ; ; ; )

Квадратные скобки означают что переменная не обязательная, в этом случае используется значение по умолчанию.

  • Число – ссылка на ячейку или число (не обязательно в числовом формате), которое необходимо написать прописью.
  • число от 1 до 6, определяющее падеж
  1. Именительный (по умолчанию если параметр не указан)
  2. Родительный
  3. Дательный
  4. Винительный
  5. Творительный
  6. Предложный

– число от 0 до 8 для добавления после суммы прописью в нужном падеже тип данных

  1. Ничего (по умолчанию если параметр не указан)
  2. Рубли
  3. Доллары США
  4. Евро
  5. Календарные дни
  6. Рабочие дни
  7. Дни
  8. Штуки
  9. Целое + дробная часть

– значение 0 или 1, которое указывает на необходимость записи дробной части числа прописью

  1. Не выводить прописью дробную часть числа (по умолчанию)
  2. Указать прописью также и дробную часть числа

– значение 0 или 1, которое указывает на необходимость дублирования числа перед суммой прописью

  1. Скрыть число перед суммой прописью
  2. Продублировать числовое значение суммы прописью (по умолчанию)

– значение 0 или 1, которое указывает на необходимость записывать сумму прописью в скобках

  1. Убрать скобки из суммы прописью
  2. Поместить сумму прописью в скобки (по умолчанию)

– значение 0 или 1, которое указывает на необходимость делать первую букву суммы прописью заглавной

  1. Все буквы суммы прописью строчные
  2. Сделать первую букву заглавной (по умолчанию)

Разберем синтаксис функции на примерах:

Склонение числительных по падежам.

Добавление типа данных после указания суммы прописью

Обратите внимание, что если вторая переменная (падеж) не задана, то указывается по умолчанию в именительном падеже

Как прописать дробную часть числа с помощью функции.

Различные форматы вывода суммы прописью.

Числа прописью с копейками заглавными или строчными буквами в Excel

Вот код VBA для пользовательской функции. Отображение суммы прописью с копейками и выбором первой заглавной или строчной буквы

Function РубПропись(Сумма As Double, Optional Без_копеек As Boolean = False, _
 Optional КопПрописью As Boolean = False, Optional начинитьПрописной As Boolean = True) As String
'Функция для написания суммы прописью
 Dim ed, des, sot, ten, razr, dec
 Dim i As Integer, str As String, s As String
 Dim intPart As String, frPart As String
 Dim mlnEnd, tscEnd, razrEnd, rub, cop
 
 dec = Array("", "одна ", "две ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
 ed = Array("", "один ", "два ", "три ", "четыре ", "пять ", "шесть ", "семь ", "восемь ", "девять ")
 ten = Array("десять ", "одиннадцать ", "двенадцать ", "тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", "семнадцать ", "восемнадцать ", "девятнадцать ")
 des = Array("", "", "двадцать ", "тридцать ", "сорок ", "пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто ")
 sot = Array("", "сто ", "двести ", "триста ", "четыреста ", "пятьсот ", "шестьсот ", "семьсот ", "восемьсот ", "девятьсот ")
 razr = Array("", "тысяч", "миллион", "миллиард")
 mlnEnd = Array("ов ", " ", "а ", "а ", "а ", "ов ", "ов ", "ов ", "ов ", "ов ")
 tscEnd = Array(" ", "а ", "и ", "и ", "и ", " ", " ", " ", " ", " ")
 razrEnd = Array(mlnEnd, mlnEnd, tscEnd, "")
 rub = Array("рублей", "рубль", "рубля", "рубля", "рубля", "рублей", "рублей", "рублей", "рублей", "рублей")
 cop = Array("копеек", "копейка", "копейки", "копейки", "копейки", "копеек", "копеек", "копеек", "копеек", "копеек")
 If Сумма >= 1000000000000# Or Сумма < 0 Then РубПропись = CVErr(xlErrValue): Exit Function
 '&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
 If Round(Сумма, 2) >= 1 Then
 intPart = Left$(Format(Сумма, "000000000000.00"), 12)
 For i = 0 To 3
 s = Mid$(intPart, i * 3 + 1, 3)
 If s <> "000" Then
 str = str & sot(CInt(Left$(s, 1)))
 If Mid$(s, 2, 1) = "1" Then
 str = str & ten(CInt(Right$(s, 1)))
 Else
 str = str & des(CInt(Mid$(s, 2, 1))) & IIf(i = 2, dec(CInt(Right$(s, 1))), ed(CInt(Right$(s, 1))))
 End If
 On Error Resume Next
 str = str & IIf(Mid$(s, 2, 1) = "1", razr(3 - i) & razrEnd(i)(0), _
 razr(3 - i) & razrEnd(i)(CInt(Right$(s, 1))))
 On Error GoTo 0
 End If
 Next i
 str = str & IIf(Mid$(s, 2, 1) = "1", rub(0), rub(CInt(Right$(s, 1))))
 End If
 РубПропись = str
 ''''''''''''''''''
 If Без_копеек = False Then
 frPart = Right$(Format(Сумма, "0.00"), 2)
 If frPart = "00" Then
 frPart = ""
 Else
 If КопПрописью Then
 frPart = IIf(Left$(frPart, 1) = "1", ten(CInt(Right$(frPart, 1))) & cop(0), _
 des(CInt(Left$(frPart, 1))) & dec(CInt(Right$(frPart, 1))) & cop(CInt(Right$(frPart, 1))))
 Else
 frPart = IIf(Left$(frPart, 1) = "1", frPart & " " & cop(0), frPart & " " & cop(CInt(Right$(frPart, 1))))
 End If
 End If
 РубПропись = str & " " & frPart
 End If
 ''''''''''''''''''
' РубПропись = str & frPart
 If начинитьПрописной Then Mid$(РубПропись, 1, 1) = UCase(Mid$(РубПропись, 1, 1))
' If начинитьПрописной Then РубПропись = UCase(Left(РубПропись, 1)) & Mid(РубПропись, 2)
End Function
  • Без копеек (1), с копейками (0)
  • Копейки прописью (1), числом (0)
  • Начинать прописью (0), заглавной (1)

Вот как используется функция

Примечание

  • Данная функция будет работать с числами от 0 до 99 999 999
  • Перед копирование кода переключите раскладку клавиатуры на русский язык (для корректного копирования русского текста)
  • Код VBA необходимо вставлять во все файлы (Книги Excel), где вы хотите, чтобы она работала
  • После вставки код, необходимо сохранить файл с поддержкой макросов xlsm (в Excel, начиная с 2007 версии)
  • Функцию можно либо набирать в ручную, либо, если вы забыли как она пишется, через мастер функций (кнопка fx в строке формул, категория Определенные пользователем)

Функция «СуммаПрописью»

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

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

Чтобы функция была доступна из всех рабочих книг на отдельном компьютере, ее код следует добавить в персональную (личную) книгу макросов (PERSONAL.XLSB). В этом случае функция будет работать на другом компьютере, если только ее код будет размещен в персональной книге макросов на другом компьютере.

Если у вашей программы Excel нет личной книги макросов, ее можно создать самостоятельно. Ниже рассмотрено добавление кода функции именно в персональную книгу макросов, в рабочие книги он добавляется точно также.

  1. Скачайте архив и извлеките из него файл «Module.bas» с кодом функции.
  2. Откройте любую книгу Excel, можно новую.
  3. Сочетанием левой клавиши Alt+F11 откройте редактор Visual Basic for Applications.

  1. Дважды кликните на строке «VBA Project (PERSONAL.XLSB)» или один раз на крестике слева для открытия вложенного списка. Если эта позиция уже развернута переходите к пункту 5.

  1. Дважды кликните на строке «Microsoft Excel Objects» или один раз на крестике слева для открытия списка объектов. Если эта позиция уже развернута переходите к пункту 6.

  1. Кликнув правой кнопкой на строке «ЭтаКнига», откройте контекстное меню и выберите в нем пункт «Import File. ».

  1. В открывшемся диалоге выбора файлов найдите извлеченный ранее из архива «Module.bas» и выберите его двойным кликом. Модуль с функцией будет автоматически загружен.

Теперь можно в ячейки на листах любых рабочих книг вставлять формулу: «=PERSONAL.XLSB!СуммаПрописью(АдресЯчейки)» или, что намного удобнее, выбирать функцию с помощью мастера. Откройте мастер функций, выберите категорию «Определенные пользователем» и в списке доступных функций появится строка «PERSONAL.XLSB!СуммаПрописью», которую можно выбрать, а на втором шаге вставить адрес ячейки с числовым значением.

Формула будет доступна во всех книгах Excel, но только на компьютере, на котором находится персональная книга макросов PERSONAL.XLSB с загруженным модулем.

Если книгу планируется передавать на другие машины, тогда в шаге 6 надо правой кнопкой кликнуть на строке «ЭтаКнига», относящейся не к «VBA Project (PERSONAL.XLSB)», а относящейся к «VBA Project (ВашаКнига)» с именем вашей книги. Тогда модуль с функцией загрузится непосредственно в вашу рабочую книгу Excel и будет доступен для этой книги на любом компьютере. В этом случае формула в ячейке будет иметь вид: «=СуммаПрописью(АдресЯчейки)».

С кодом функции «СуммаПрописью» вы можете ознакомиться в этой статье.

Включаем надстройку NUM2TEXT в меню Excel

Перед созданием ячеек с суммой прописью нужно скачать надстройку для Microsoft Excel. Надстроек нет на официальном сайте разработчиков, но ее можно загрузить с других страниц

Важно проверять файлы, которые загружаются на компьютер с помощью антивирусной программы, иначе есть риск заразить систему вирусом

Также обратите внимание на разрешение файла. Правильное разрешение – XLA

Если надстройка уже скачана, поместите ее в папку, где ее будет несложно найти. Это пригодится при подключении. Далее разберем включение надстройки по шагам:

  1. Необходимо открыть вкладку «Файл» в документе Эксель и выбрать раздел «Параметры». Обычно он находится в нижней части списка разделов.

1

  1. Откроется окно параметров, в левой части которого находится меню. Выбираем раздел «Надстройки». Если после этого взглянуть в правую часть экрана, можно увидеть, что некоторые из них предустановлены, но они не подходят для упрощенной записи суммы прописью.

Внизу находится подраздел «Управление» с кнопкой «Перейти». Кликаем по этой кнопке.

2

  1. На экране появится окно с доступными надстройками. Если необходимо, можно включить некоторые из них, но цель в данном случае – кнопка «Обзор».

3

  1. Находим файл с надстройкой через окно обзора. Кликаем по нему, чтобы выбрать, и нажимаем «ОК».

4

  1. В списке надстроек появится пункт «Num2Text». Рядом с ним должна сразу стоять галочка. Если ее нет в окошке, нужно выбрать эту надстройку вручную и нажать «ОК».

5

Подключение надстройки «Сумма прописью» завершено, теперь можно ею воспользоваться.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector