[an error occurred while processing this directive]

В начало

Введение

Часть 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

[an error occurred while processing this directive]