Сумма прописью на кыргызском для MS Excel

Автор: Руслан Чодоев 11.02.2016

Желающие могут скачать расширения (или надстройку) для MS Excel 2010 и выше где реализовано функция перевода сумму в текст. Например 34 232,34 в тексте на кыргызском будет «Отуз төрт миң эки жүз отуз эки сом 34 тыйын». Расширение оформлено в виде addins (файл с расширением *xlam). Сумма_прописью_кыргызча5

Чтобы подключить расширения Вам нужно
1. скачать расширения.
2.Сохранить на диск вашего компьютера.
3. Открыть меню Файл — Параметры.
4. Выбрать вкладку — Надстройки

Окно параметры Excel

Окно параметры Excel

5. Выбрать Управление: Надстройки Excel и нажать на кнопку «Перейти…»
6. Откроется окно надстроек.

Текущие надстройки

Текущие надстройки

Пока что там нет нашей надстройки. Чтобы добавить ее нажимаем кнопку «Обзор…» и указываем на файл «число_с_прописью_Кыргызча.xlam» которую мы скачали. Теперь в списке появилась расширение «Число_с_прописью_Кыргызча».

Расширение в списке

Расширение в списке

Теперь можем создать новую книгу Excel и пользоватся функцией «=ЧислоПрописьюКР(Сан)»

Сумма прописью на кыргызском.

Сумма прописью на кыргызском.

Скачать расширение:

  число_с_прописью_Кыргызча.xlam (35,5 KiB, 440 hits)


Файл пример propis_primer.xlsx

Так же желающие могут изменить или переделать код на VB

' ====================================================================
' Санды кыргызчасында созго которуу функциясы
' сандар 0дон 999 триллионго чейин
' Чодоев Руслан ruslanch@list.ru, http://www.tamgasoft.kg
' версия 1.0 от 10.02.2016
' можете скачать новую версию с сайта http://www.tamgasoft.kg/
'
' Функции для вычисления суммы прописью на кыргызском языке по
' числовому значению от 0 до 999 триллион
' Чодоев Руслан ruslanch@list.ru, http://www.tamgasoft.kg
' версия 1.0 от 10.02.2016
' можете скачать новую версию с сайта http://www.tamgasoft.kg/
' ====================================================================

'====================================================================
Dim бирдик(9) As String
Dim ондук(9) As String
Dim жуздук, миндик, миллион, миллиард, триллион As String
'====================================================================

Private Function Миндиктерди_алуу(Сан As Currency) As String
Dim Сан2 As Currency

Миндиктерди_алуу = ""
Сан2 = Сан

If Сан < 1000 Then ' Минден аз болсо жон гана жуздукторду алабыз
 Миндиктерди_алуу = жуздукту_алуу(Сан)
 Exit Function
End If


If Сан >= 1000000000000# Then ' Триллиондон чон
 Сан2 = Сан - Int(Сан / 1000000000000#) * 1000000000000#
 Миндиктерди_алуу = жуздукту_алуу(Int(Сан / 1000000000000#)) + " " + триллион + " " + Миндиктерди_алуу(Сан2)
 Exit Function
End If


If Сан >= 1000000000 Then ' Миллиарддан чон
 Сан2 = Сан - Int(Сан / 1000000000) * 1000000000
 Миндиктерди_алуу = жуздукту_алуу(Int(Сан / 1000000000)) + " " + миллиард + " " + Миндиктерди_алуу(Сан2)
 Exit Function
End If



If Сан >= 1000000 Then ' Миллиондон чон
 Сан2 = Сан - Int(Сан / 1000000) * 1000000
 Миндиктерди_алуу = жуздукту_алуу(Int(Сан / 1000000)) + " " + миллион + " " + Миндиктерди_алуу(Сан2)
 Exit Function
End If


If Сан >= 1000 Then ' Минден чон
 Сан2 = Сан - Int(Сан / 1000) * 1000
 Миндиктерди_алуу = жуздукту_алуу(Int(Сан / 1000)) + " " + миндик + " " + жуздукту_алуу(Сан2)
 Exit Function
End If

Индекс = Int(Сан2 / 1000)
If Индекс = 0 Then
 Миндиктерди_алуу = жуздукту_алуу(Сан)
 Exit Function
End If

Миндиктерди_алуу = Trim(бирдик(Индекс) + " " + миндик + " " + жуздукту_алуу(Сан))
End Function

'====================================================================

Private Function жуздукту_алуу(Сан As Currency) As String
Dim Сан2 As Currency
жуздукту_алуу = ""
Сан2 = Сан

If Сан < 100 Then
 жуздукту_алуу = ондукту_алуу(Сан)
 Exit Function
End If

If Сан >= 1000 Then
 Сан2 = Сан - Int(Сан / 1000) * 1000
End If

Индекс = Int(Сан2 / 100)

If Индекс = 0 Then
 жуздукту_алуу = ондукту_алуу(Сан)
 Exit Function
End If

жуздукту_алуу = Trim(бирдик(Индекс) + " " + жуздук + " " + ондукту_алуу(Сан))
End Function

'====================================================================

Private Function ондукту_алуу(Сан As Currency) As String
Dim Сан2 As Currency
ондукту_алуу = ""

Сан2 = Сан
If Сан < 10 Then
 ондукту_алуу = бирдикти_алуу(Сан)
 Exit Function
End If

If Сан >= 100 Then
 Сан2 = Сан - Int(Сан / 100) * 100
End If


Индекс = Int(Сан2 / 10)
If Индекс = 0 Then
 ондукту_алуу = бирдикти_алуу(Сан)
 Exit Function
End If

ондукту_алуу = Trim(ондук(Индекс) + " " + бирдикти_алуу(Сан))
End Function

'====================================================================

Private Function бирдикти_алуу(Сан As Currency) As String
Dim Сан2 As Currency
бирдикти_алуу = ""
Сан2 = Сан
If Сан < 1 Then Exit Function
If Сан >= 10 Then
 Сан2 = Сан - Int(Сан / 10) * 10
End If
If Сан2 = 0 Then
 Exit Function
End If


Индекс = Int(Сан2 / 1)
If Индекс = 0 Then
 бирдикти_алуу = ""
 Exit Function
End If

бирдикти_алуу = бирдик(Индекс)

End Function

'====================================================================

Function ЧислоПрописьюКР(Сан As Currency, Optional Валюта As String = "сом", Optional Тыйын As String = "тыйын")
' Керектуу переменныйлар

Dim ch As Currency
Dim Результат As String
Dim тый As String

' Массивдерди толтурабыз
бирдик(1) = "бир"
бирдик(2) = "эки"
бирдик(3) = ChrW(1199) + "ч"
бирдик(4) = "т" + ChrW(1257) + "рт"
бирдик(5) = "беш"
бирдик(6) = "алты"
бирдик(7) = "жети"
бирдик(8) = "сегиз"
бирдик(9) = "тогуз"
ондук(1) = "он"
ондук(2) = "жыйырма"
ондук(3) = "отуз"
ондук(4) = "кырк"
ондук(5) = "ээл" + ChrW(1199)
ондук(6) = "алтымыш"
ондук(7) = "жетимиш"
ондук(8) = "сексен"
ондук(9) = "токсон"
жуздук = "ж" + ChrW(1199) + "з"
миндик = "ми" + ChrW(1187)
миллион = "миллион"
миллиард = "миллиард"
триллион = "триллион"

Результат = Trim(Миндиктерди_алуу(Сан)) ' негизги функцияны чыкырабыз
Результат = UCase(Left(Результат, 1)) + Right(Результат, Len(Результат) - 1) ' биринчи тамгасын чон кылабыз


тый = Format(Round((Сан - Int(Сан)) * 100), "00") ' тыйындарды кошобуз

If Тыйын = "" Then
 ЧислоПрописьюКР = Trim(Результат + " " + Валюта) ' жыйынтык (тыйындары жок)
 Else
 ЧислоПрописьюКР = Trim(Результат + " " + Валюта + " " + тый + " " + Тыйын) ' жыйынтык
End If

End Function

'====================================================================

 

В рубриках: Загрузки

 

Оставьте комментарий