Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Visual Basic
Перезагрузить страницу Числопрописью!
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Маугли Маугли вне форума
Member
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.04.2006
По умолчанию Числопрописью! - 18.04.2006, 22:21

Здравствуйте люди добрые, меня интересует одна фишка в Excel, как мне сделать, например...Я ввёл в ячейку цифру 50, а Я хочу, чтобы в другой ячейке было написано текстом любая цифра "ЧИСЛОПРОПИСЬЮ"...как мне это сделать???
Заранее Вам всем спасибо!!!
Ответить с цитированием
  (#2 (permalink)) Старый
=Lio= =Lio= вне форума
Member
 
Сообщений: 53
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 10.04.2006
По умолчанию 19.04.2006, 08:25

Тема эта неоднократно обсуждалась.
Вот пример функции для числа пропистью в Excel
Код:
'N - значение передаваемое в функцию, имеет денежный формат
' сама функция должна возвращать текст и имеет тип строковый
Public Function Сумма_прописью(N As Currency) As String
Dim S As String 'переменная для преобразования N в строку символов
Dim Sum As String 'переменная для вывода суммы прописью

S = Format(N, "000000.00") 'вернет в переменную строковое значение
'как денежную сумму цифрами в заданном формате
Sum = ""

'проанализируем текстовую строку
'для этого используем функцию Mid начиная с первого символа
Select Case Mid(S, 1, 1) '(переменная,первый параметр, один символ)
    Case "0"
    Case "1": Sum = Sum + "сто "
    Case "2": Sum = Sum + "двести "
    Case "3": Sum = Sum + "триста "
    Case "4": Sum = Sum + "четыреста "
    Case "5": Sum = Sum + "пятьсот "
    Case "6": Sum = Sum + "шестьсот "
    Case "7": Sum = Sum + "семисот "
    Case "8": Sum = Sum + "восемьсот "
    Case "9": Sum = Sum + "девятьсот "
End Select

'далее проверяем следуюший символ и в соответсвенно
'формируем надпись
    If Mid(S, 2, 1) > "1" Or Mid(S, 2, 1) = "0" Then
    Select Case Mid(S, 2, 1)
        Case "2": Sum = Sum + "двадцать "
        Case "3": Sum = Sum + "тридцать "
        Case "4": Sum = Sum + "сорок "
        Case "5": Sum = Sum + "пятьдесят "
        Case "6": Sum = Sum + "шестьдесят "
        Case "7": Sum = Sum + "семьдисят "
        Case "8": Sum = Sum + "восемьдесят "
        Case "9": Sum = Sum + "девяносто "
    End Select
    Select Case Mid(S, 3, 1)
        Case "1": Sum = Sum + "одна "
        Case "2": Sum = Sum + "две "
        Case "3": Sum = Sum + "три "
        Case "4": Sum = Sum + "четыре "
        Case "5": Sum = Sum + "пять "
        Case "6": Sum = Sum + "шесть "
        Case "7": Sum = Sum + "семь "
        Case "8": Sum = Sum + "восемь "
        Case "9": Sum = Sum + "девять "
    End Select
End If
If Mid(S, 2, 1) = "1" Then
    Select Case Mid(S, 3, 1)
        Case "0": Sum = Sum + "десять "
        Case "1": Sum = Sum + "одинадцать "
        Case "2": Sum = Sum + "двенадцать "
        Case "3": Sum = Sum + "тринадцать "
        Case "4": Sum = Sum + "четырнадцать "
        Case "5": Sum = Sum + "пятнадцать "
        Case "6": Sum = Sum + "шестнадцать "
        Case "7": Sum = Sum + "семнадцать "
        Case "8": Sum = Sum + "восемнадцать "
        Case "9": Sum = Sum + "девятнадцать"
    End Select
End If
If Sum <> "" Then
    If Mid(S, 2, 1) = "1" Then
        Sum = Sum + "тысяч "
    Else
        Select Case Mid(S, 3, 1)
            Case "1": Sum = Sum + "тысяча "
            Case "2", "3", "4": Sum = Sum + "тысячи "
           Case Else: Sum = Sum + "тысяч "
        End Select
    End If
End If
Select Case Mid(S, 4, 1)
    Case "0"
    Case "1": Sum = Sum + "сто "
    Case "2": Sum = Sum + "двести "
    Case "3": Sum = Sum + "триста "
    Case "4": Sum = Sum + "четыреста "
    Case "5": Sum = Sum + "пятьсот "
    Case "6": Sum = Sum + "шестьсот "
    Case "7": Sum = Sum + "семисот "
    Case "8": Sum = Sum + "восемьсот "
    Case "9": Sum = Sum + "девятьсот "
End Select
    If Mid(S, 5, 1) > "1" Or Mid(S, 5, 1) = "0" Then
    Select Case Mid(S, 5, 1)
        Case "2": Sum = Sum + "двадцать "
        Case "3": Sum = Sum + "тридцать "
        Case "4": Sum = Sum + "сорок "
        Case "5": Sum = Sum + "пятьдесят "
        Case "6": Sum = Sum + "шестьдесят "
        Case "7": Sum = Sum + "семьдисят "
        Case "8": Sum = Sum + "восемьдесят "
        Case "9": Sum = Sum + "девяносто "
    End Select
    Select Case Mid(S, 6, 1)
        Case "1": Sum = Sum + "одна "
        Case "2": Sum = Sum + "два "
        Case "3": Sum = Sum + "три "
        Case "4": Sum = Sum + "четыре "
        Case "5": Sum = Sum + "пять "
        Case "6": Sum = Sum + "шесть "
        Case "7": Sum = Sum + "семь "
        Case "8": Sum = Sum + "восемь "
        Case "9": Sum = Sum + "девять "
    End Select
End If
If Mid(S, 5, 1) = "1" Then
    Select Case Mid(S, 6, 1)
        Case "0": Sum = Sum + "десять "
        Case "1": Sum = Sum + "одинадцать "
        Case "2": Sum = Sum + "двенадцать "
        Case "3": Sum = Sum + "тринадцать "
        Case "4": Sum = Sum + "четырнадцать "
        Case "5": Sum = Sum + "пятнадцать "
        Case "6": Sum = Sum + "шестнадцать "
        Case "7": Sum = Sum + "семнадцать "
        Case "8": Sum = Sum + "восемнадцать "
        Case "9": Sum = Sum + "девятнадцать "
    End Select
End If

Sum = Sum + " руб." + Mid(S, 8, 2) + " коп."

Сумма_прописью = UCase(Left(Sum, 1)) + Right(Sum, Len(Sum) - 1)
'UCase -преобразует строку в строку с прописными буквами
'Left и Right возвращают заданное кол-во символов из строкового параметра справа и слева
'Len возвращает числоб равное длине строки-параметра

End Function
Ответить с цитированием
  (#3 (permalink)) Старый
Маугли Маугли вне форума
Member
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.04.2006
По умолчанию 19.04.2006, 18:59

Как мне это всё расположить, можете подсказать, Я почему-то не могу понять, куда это всё расместить, весь код...ну например в ячейке A1=(число), в A3(числопрописью), вот как мне проставить это всё, чтобы получилась такая фишка... заранее благодарен Вам...спасибо!
Ответить с цитированием
  (#4 (permalink)) Старый
=Lio= =Lio= вне форума
Member
 
Сообщений: 53
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 10.04.2006
По умолчанию 20.04.2006, 18:46

Не совсем понятно из первого поста КАК Вы хотите использовать данную функцию. Есть несколько вариантов.
Сначала, находясь в книге Excel перейдите в редактор Visual Basic (Alt + F11) или через меню Сервис -> Макросы -> Редактор Visual Bsic.
Добавьте модуль. В него вставте данную функцию.
Ну а дальнейшие действия зависят от того, чего Вы хотите. Можно передавить функции значение определенной ячейки, например при переходе на другую строку, можно создать командную кнопку и навешать на нее передачу параметра (числового значения) в функцию.
У меня есть пример, где данная функция используется в комплексе с другими. Если будет необходимость, пишите в приват, т.к. не пойму, как присоединить файл.
Удачи.
Ответить с цитированием
  (#5 (permalink)) Старый
Маугли Маугли вне форума
Member
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 06.04.2006
По умолчанию 20.04.2006, 22:44

Спасибо большое...всё работает...
Ответить с цитированием
Ads.
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов