Сумма прописью

Автор Радмила, 14 февраля 2016, 19:52

0 Пользователи и 1 гость просматривают эту тему.

Радмила

Здравствуйте!
Как можно прописать сумму, не используя кирилик документ и ее команду копировать функции в документ.

В ексель когда работала, скачала надстройку sumprop.xla, и милое дело.

А как быть с опен офис?
Может быть, написать макрос?
Пробовала скопировать макрос

Для этого задействуются функции

InfraLinux.N2Scribe.Long2Scribe(n)

    преобразует действительное число к виду: **** **** *****


InfraLinux.N2Scribe.Number2Scribe(n)

    преобразует действительное число к виду: **** **** целых **** **** сотых


Пример создания пользовательской функции Calc[1]:

Function CalcNum2Scribe(num_value as Single) as String
  If (Not GlobalScope.BasicLibraries.isLibraryLoaded("InfraLinux")) Then GlobalScope.BasicLibraries.LoadLibrary("InfraLinux")

  CalcNum2Scribe = Number2Scribe(num_value)
End Function

После сохранения макроса, в Calc становится доступной функция:

=CalcNum2Scribe(123567657,4556)





Но ругается на слове Function

Yakov


Yakov

#2
Альтернативный вариант – расширение
NumberText

И формула будет такой:

=NUMBERTEXT(345;"ru")

Радмила

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

Yakov

#4
Для денежной суммы в расширении NumberText  есть специальная функция


=MONEYTEXT(76,6;"RUB")

Rafik

Попробуйте Sumtex может быть он подойдет.

JohnSUN

Цитата: Радмила от 14 февраля 2016, 19:52
Может быть, написать макрос?
Пробовала скопировать макрос
Радмила, не тот макрос копировала. Тот, который "сумма прописью в рублях и коп, как в бух. доках." должен выглядеть приблизительно так:
Function SumPropis(dVal As Double, Optional uCase As Boolean) As Variant
Const LIB_NAME = "CyrillicTools"
If GlobalScope.BasicLibraries.HasByName(LIB_NAME) Then
If (Not GlobalScope.BasicLibraries.isLibraryLoaded(LIB_NAME)) Then GlobalScope.BasicLibraries.LoadLibrary(LIB_NAME)
SumPropis = N2S_RU_RUR(dVal, uCase)
Else
SumPropis = dVal
EndIf
End Function

Лежать эта функция должна в любом модуле любой библиотеки Standard - хоть прямо в книге, где нужно числа в пропись превращать (но тогда иногда книга будет просить включить макросы - а это пугает неопытных пользователей и в конце концов просто надоедает), хоть в "Мои макросы и диалоги" (но тогда это нужно один раз сделать на каждой бухгалтерской машине)
Цитата: Радмила от 15 февраля 2016, 06:47
Спасибо, я попробовала - не то.
Кириллик не устраивает, потому что надо нажимать несколько раз, чтобы получить сумму прописью
Извини, но это не совсем соответствует действительности.

Если ты установишь CyrillicTools и поместишь вот эту функцию SumPropis в библиотеку Standard, то в любой ячейке можешь написать, например:
=SUMPROPIS(D6)
или, если не нужна первая заглавная буква (весь текст строчными)
=SUMPROPIS(D6;0)
или, чтобы уберечься от некрасивых сообщений об ошибках при открытии этой книги на машине, где запрещены макросы
=IFERROR(SUMPROPIS(D6);D6)
Если CyrillicTools на машине не будет установлен, то вместо суммы прописью будешь получать ту же сумму, но в виде обычного числа.
Владислав Орлов aka JohnSUN
Благодарить-не зазорно.
Подарить благо создателям офиса, нашему ресурсу, мне

Радмила

спасибо всем за помощь.
больше всего мне подошел вариант
=MONEYTEXT(А1)
Но только мне надо, чтобы первая буква была прописной и чтобы копейки были в цифрах, вот так:
150,94 Сто пятьдесят рублей 94 копейки

А у меня пока вот так:
150,94 сто пятьдесят рублей девяносто четыре копейки.

Спасибо за ответ


Rafik

Цитата: Радмила от  3 апреля 2016, 04:58Но только мне надо, чтобы первая буква была прописной и чтобы копейки были в цифрах, вот так:
150,94 Сто пятьдесят рублей 94 копейки

А у меня пока вот так:
150,94 сто пятьдесят рублей девяносто четыре копейки.
Давным-давно как-то находил макрос Sumtex и до сих пор пользуюсь им. Для получения первой заглавной буквы использую костыль в виде формулы. Работает, пока тьфу-тьфу, нормально. См. вложенный документ. На первом листе есть неплохая шпаргалка с описанием параметров. Макрос sumtex прикручен в сам документ.

foxyra


Цитата: Rafik от  6 апреля 2016, 09:11_Тест SumTex.ods

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

mikekaganski

#10
Начиная с версии 6.1 макрос не нужен: формат ячейки [NatNum12 capitalize cardinal]0 показывает 12345 как "Двенадцать тысяч триста сорок пять".

Цитата: Радмила от  3 апреля 2016, 06:58Но только мне надо, чтобы первая буква была прописной и чтобы копейки были в цифрах, вот так:
150,94 Сто пятьдесят рублей 94 копейки

А у меня пока вот так:
150,94 сто пятьдесят рублей девяносто четыре копейки.

Хмм... ну да, формат [NatNum12 capitalize RUB]0,00 так и выдаёт - "Сто пятьдесят рублей девяносто четыре копейки" (первую прописную сделать легко, а копейки цифрами - нужно доделывать).
С уважением,
Михаил Каганский

foxyra

тут все понятно расписано , мне помогло не так давно .  test.ods