В начало
Введение
Часть I. Коротко об Excel
Глава 1. Электронные таблицы Excel
Глава 2. Типовые операции в Excel
Часть II. Основы бухгалтерского учета
Глава 3. Принципы бухгалтерского учета
Глава 4. Бухгалтерский учет на малом предприятии
Глава 5. Основные вопросы налогообложения
Глава 6. Актуальные вопросы законодательства
Часть III. Автоматизация бухгалтерского учета
Глава 7. Начинающий бизнес и Excel
Глава 8. Бухгалтерия на Excel
Глава 9. Генерация документов
Глава 10. Оперативный и производственный учет
Заключение
Приложение. Тексты программ пользовательских функций
|
Приложение. Тексты программ пользовательских функций
Attribute VBName = "Модуль1"
Function rmrazr(x, i)
rmrazr = Int(x * 10 ^(-i)) Mod 10
End Function
Function rmrazm(x)
Int(Log(x * (1+10^(-13)))/Log(10)
End Function
Function montext(x)
Dim trzi(0 To 8)
a = rmrazr(x, -1) & rmrazr(x, -2)
If rmrazr(x, -1) = 1 Then
Name = " копеек"
Else
If rmrazr(x, -2) = 1 Then
Name = " копейка"
ElseIf rmrazr(x, -2) <= 4 And rmrazr(x, -2) >= 2 Then
Name = " копейки"
Else
Name = " копеек"
End If
End If
If x - Int(x) >= 0.009 Then
Name1 = a & Name
Else
Name1 = ""
End If
If rmrazm(x) >= 0 Then
If rmrazr(x, 1) = 1 Then
name2 = "рублей "
Else
If rmrazr(x, 0) = 1 Then
name2 = "рубль "
ElseIf rmrazr(x, 0) <= 4 And rmrazr(x. 0) >= 2 Then
name2 = "рубля "
Else
name2 = "рублей "
End If
End If
Else
name2 = ""
End If
If rmrazm(x) >= 3 Then
If rmrazr(x, 4) = 1 Then
name3 = "тысяч "
Else
If rmrazr(x, 3) = 1 Then
name3 = "тысяча "
ElseIf rmrazr(x, 3) <= 4 And rmrazr(x, 3) >= 2 Then
Name3 = "тысячи "
Else
name3 = "тысяч "
End If
End If
Else
name3 = ""
End If
If rmrazr(x, 3) = 0 Then
If rmrazr(x, 4) = 0 Then
If rmrazr(x, 5) = 0 Then
name3 = ""
End If
End If
End If
If rmrazm(x) >= 6 Then
If rmrazr(x, 7) = 1 Then
name4 = "миллионов "
Else
If rmrazr(x, 6) = 1 Then
name4 = "миллион "
ElseIf rmrazr(x, 6) <= 4 And rmrazr(x, 6) >= 2 Then
name4 = "миллиона "
Else
name4 = "миллионов "
End If
End If
Else
name4 = ""
End If
For i = 0 To 8
If rmrazr(x, i) = 0 Then
trzi(i) = ""
Else
If i = 0 Or i = 6 Then
If rmrazr(x, i + 1) <> 1 Then
trzi(i) = Application.Choose(rmrazr(x, i), "один ", "два ", "три
", "четыре ", "пять ", "шесть ", _
"семь ", "восемь ", "девять ")
Else: trzi(i) = ""
End If
ElseIf i = 3 Then
If rmrazr(x, i + 1) <> 1 Then
trzi(i) = Application.Choose(rmrazr(x, i), "одна ", "две ", "три ",
"четыре ", "пять ","шесть ", _
"семь ", "восемь ", "девять ")
Else: trzi(i) = ""
End If
ElseIf i = 1 Or i = 4 Or i = 7 Then
If rmrazr(x, i) = 1 Then
trzi(i) = Application.Choose(rmrazr(x, (i – 1)) + 1, "десять ", "одиннадцать
", "двенадцать ", _
"тринадцать ", "четырнадцать ", "пятнадцать ", "шестнадцать ", "семнадцать
", "восемнадцать ", "девятнадцать ")
Else
trzi(i) = Application.Choose(rmrazr(x, i) – 1, "двадцать ", "тридцать
", "сорок ", _
"пятьдесят ", "шестьдесят ", "семьдесят ", "восемьдесят ", "девяносто
")
End If
Else
trzi(i) = Application.Choose(rmrazr(x, i). "сто ", "двести ", "триста
", "четыреста ", "пятьсот " _
"шестьсот ", "семьсот ", "восемьсот ", "девятьсот ")
End If
End If
If i = rmrazm(x) Then
trzi(i) = Application.Proper(trzi(i))
End If
Next i
montext = trzi(8) & trzi(7) & trzi(6) & name4 & trzi(5) & trzi(4) & trzi(3)
& name3 & trzi(2) & trzi(l) _
& trzi(0) & name2 & Name1
End Function
|