Ответить в теме: Excel Цифры в буквы
Для входа нажмите здесь
Вы можете выбрать иконку, характеризующую сообщение
Преобразит www.example.com в [URL]http://www.example.com[/URL].
Сообщение от Olaf Дилетанту проблематично. Саму ф-ю вы не доведете на вашем уровне. 1. Найти функцию в инете. 2. В электронной таблице открыть редактор макросов Alt-F11 3. В левом окошке объектов правая кнопка мыши: Insert/Module, Ок. 4. Кликаем 2 раза на появившемся Module1. 5. Справа в окне редактирования макроса вставляем ф-ю из инета, у которой параметр - число, а тип возвращаемого значения String или Variant. 6. Все сохраняем. 7. Возвращаемся собс-но в Эксель. Теперь в списке функций появился раздел "Определенные пользователем". Употребляйте как обычную ф-ю. Могу предложить мой код, который я написал для печати платежек (за основу брал что-то из инета), если ничего не найдете подходящего в сети. См приложение. сСПАСИБО
Сообщение от Olaf Дилетанту проблематично. Саму ф-ю вы не доведете на вашем уровне. 1. Найти функцию в инете. 2. В электронной таблице открыть редактор макросов Alt-F11 3. В левом окошке объектов правая кнопка мыши: Insert/Module, Ок. 4. Кликаем 2 раза на появившемся Module1. 5. Справа в окне редактирования макроса вставляем ф-ю из инета, у которой параметр - число, а тип возвращаемого значения String или Variant. 6. Все сохраняем. 7. Возвращаемся собс-но в Эксель. Теперь в списке функций появился раздел "Определенные пользователем". Употребляйте как обычную ф-ю. Могу предложить мой код, который я написал для печати платежек (за основу брал что-то из инета), если ничего не найдете подходящего в сети. См приложение. Спасибо большое!!! Супер, у меня получилось все с первого раза! Объяснили отлично!
Спасибо за надстройку
Для того, чтобы функция от recidivist1 выводила текст с заглавной буквы, последнюю строку нужно доработать: Код: ...Число_в_текст = Replace(txt, Left(txt, 1), UCase(Left(txt, 1)), , 1) End Function Но функция остается недоработанной. Например, показывает: Два белорусских рублей
...Число_в_текст = Replace(txt, Left(txt, 1), UCase(Left(txt, 1)), , 1) End Function
Olaf, спасибо огромное за функцию СуммаПропись!!! Лет восемь мучилась вручную прописывать в документах ))))
Сообщение от vikttur Макросы разрешить просто: меню Сервис-Макрос-Безопасность-Уровень_безопасности-Низкий (Средний). В следующей открываемой книге макросы уже разрешены. С паролем сложнее. Вы не пробовали войти в закрытую на замок дверь? Хотя воры заходят... все сделал нормально, только нужно чтобы с большой буквы писало, как это сделать? Function Число_в_текст(SumBase As Double, Valuta As Boolean) Dim Edinicy(0 To 19) As String Dim Desyatki(0 To 9) As String Dim Sotni(0 To 9) As String Dim mlrd(0 To 9) As String Dim mln(0 To 9) As String Dim tys(0 To 9) As String Dim SumInt, x, shag, vl As Integer Dim txt, Sclon_Tys As String '--------------------------------------------- Application.Volatile '--------------------------------------------- Edinicy(0) = "" Edinicy(1) = "один " Edinicy(2) = "два " Edinicy(3) = "три " Edinicy(4) = "четыре " Edinicy(5) = "пять " Edinicy(6) = "шесть " Edinicy(7) = "семь " Edinicy(8) = "восемь " Edinicy(9) = "девять " Edinicy(11) = "одиннадцать " Edinicy(12) = "двенадцать " Edinicy(13) = "тринадцать " Edinicy(14) = "четырнадцать " Edinicy(15) = "пятнадцать " Edinicy(16) = "шестнадцать " Edinicy(17) = "семнадцать " Edinicy(18) = "восемнадцать " Edinicy(19) = "девятнадцать " '--------------------------------------------- Desyatki(0) = "" Desyatki(1) = "десять " Desyatki(2) = "двадцать " Desyatki(3) = "тридцать " Desyatki(4) = "сорок " Desyatki(5) = "пятьдесят " Desyatki(6) = "шестьдесят " Desyatki(7) = "семьдесят " Desyatki(8) = "восемьдесят " Desyatki(9) = "девяносто " '--------------------------------------------- Sotni(0) = "" Sotni(1) = "сто " Sotni(2) = "двести " Sotni(3) = "триста " Sotni(4) = "четыреста " Sotni(5) = "пятьсот " Sotni(6) = "шестьсот " Sotni(7) = "семьсот " Sotni(8) = "восемьсот " Sotni(9) = "девятьсот " '--------------------------------------------- mlrd(0) = "миллиардов " mlrd(1) = "миллиард " mlrd(2) = "миллиарда " mlrd(3) = "миллиарда " mlrd(4) = "миллиарда " mlrd(5) = "миллиардов " mlrd(6) = "миллиардов " mlrd(7) = "миллиардов " mlrd(8) = "миллиардов " mlrd(9) = "миллиардов " '--------------------------------------------- mln(0) = "миллионов " mln(1) = "миллион " mln(2) = "миллиона " mln(3) = "миллиона " mln(4) = "миллиона " mln(5) = "миллионов " mln(6) = "миллионов " mln(7) = "миллионов " mln(8) = "миллионов " mln(9) = "миллионов " '--------------------------------------------- tys(0) = "тысяч " tys(1) = "тысяча " tys(2) = "тысячи " tys(3) = "тысячи " tys(4) = "тысячи " tys(5) = "тысяч " tys(6) = "тысяч " tys(7) = "тысяч " tys(8) = "тысяч " tys(9) = "тысяч " '--------------------------------------------- On Error Resume Next SumInt = Int(SumBase) For x = Len(SumInt) To 1 Step -1 shag = shag + 1 Select Case x Case 12 ' - сотни миллиардов vl = Mid(SumInt, shag, 1) txt = txt & Sotni(vl) Case 11 ' - десятки миллиардов vl = Mid(SumInt, shag, 1) If vl = "1" And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ' - если конец триады от 11 до 19 то перескакиваем на единицы, иначе - формируем десятки Case 10 ' - единицы миллиардов vl = Mid(SumInt, shag, 1) If shag > 1 Then If Mid(SumInt, shag - 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag - 1, 2)) & "миллиардов " Else txt = txt & Edinicy(vl) & mlrd(vl) 'числа в диапозоне от 11 до 19 склоняются на "миллиардов" независимо от последнего числа триады Else txt = txt & Edinicy(vl) & mlrd(vl) End If '-КОНЕЦ БЛОКА_______________________ Case 9 ' - сотни миллионов vl = Mid(SumInt, shag, 1) txt = txt & Sotni(vl) Case 8 ' - десятки миллионов vl = Mid(SumInt, shag, 1) If vl = "1" And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ' - если конец триады от 11 до 19 то перескакиваем на единицы, иначе - формируем десятки Case 7 ' - единицы миллионов vl = Mid(SumInt, shag, 1) If shag > 2 Then If (Mid(SumInt, shag - 2, 1) = 0 And Mid(SumInt, shag - 1, 1) = 0 And vl = "0") Then GoTo 10 End If If shag > 1 Then If Mid(SumInt, shag - 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag - 1, 2)) & "миллионов " Else: txt = txt & Edinicy(vl) & mln(vl) 'числа в диапозоне от 11 до 19 склоняются на "миллиардов" независимо от последнего числа триады Else txt = txt & Edinicy(vl) & mln(vl) End If '-КОНЕЦ БЛОКА_______________________ Case 6 ' - сотни тысяч vl = Mid(SumInt, shag, 1) txt = txt & Sotni(vl) Case 5 ' - десятки тысяч vl = Mid(SumInt, shag, 1) If vl = 1 And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ' - если конец триады от 11 до 19 то перескакиваем на единицы, иначе - формируем десятки Case 4 ' - единицы тысяч vl = Mid(SumInt, shag, 1) If shag > 2 Then If (Mid(SumInt, shag - 2, 1) = 0 And Mid(SumInt, shag - 1, 1) = 0 And vl = "0") Then GoTo 10 End If Sclon_Tys = Edinicy(vl) & tys(vl) ' - вводим переменную Sclon_Tys из-за иного склонения тысяч в русском языке If vl = 1 Then Sclon_Tys = "одна " & tys(vl) ' - для тысяч склонение "один" и "два" неприменимо ( поэтому вводим переменную Sclon_Tys ) If vl = 2 Then Sclon_Tys = "две " & tys(vl) ' - для тысяч склонение "один" и "два" неприменимо ( поэтому вводим переменную Sclon_Tys ) If shag > 1 Then If Mid(SumInt, shag - 1, 1) = 1 Then Sclon_Tys = Edinicy(Mid(SumInt, shag - 1, 2)) & "тысяч " End If txt = txt & Sclon_Tys '-КОНЕЦ БЛОКА_______________________ Case 3 ' - сотни vl = Mid(SumInt, shag, 1) txt = txt & Sotni(vl) Case 2 ' - десятки vl = Mid(SumInt, shag, 1) If vl = "1" And Mid(SumInt, shag + 1, 1) <> 0 Then GoTo 10 Else txt = txt & Desyatki(vl) ' - если конец триады от 11 до 19 то перескакиваем на единицы, иначе - формируем десятки Case 1 ' - единицы vl = Mid(SumInt, shag, 1) If shag > 2 Then If (Mid(SumInt, shag - 2, 1) = 0 And Mid(SumInt, shag - 1, 1) = 0 And vl = "0") Then GoTo 10 End If If shag > 1 Then If Mid(SumInt, shag - 1, 1) = 1 Then txt = txt & Edinicy(Mid(SumInt, shag - 1, 2)) Else: txt = txt & Edinicy(vl) Else txt = txt & Edinicy(vl) End If '-КОНЕЦ БЛОКА_______________________ End Select 10: Next x Select Case Valuta Case True If vl = 0 Or vl > 4 Or (Mid(SumInt, shag - 1, 2) > 10 And Mid(SumInt, shag - 1, 2) < 20) Then txt = txt + "белорусских рублей" Else If vl = 1 Then txt = txt + "белорусский рубль" Else txt = txt + "белорусских рубля" End If Case False If vl = 0 Or vl > 4 Or (Mid(SumInt, shag - 1, 2) > 10 And Mid(SumInt, shag - 1, 2) < 20) Then txt = txt + "долларов" Else If vl = 1 Then txt = txt + "доллар" Else txt = txt + "доллара" End If End Select Число_в_текст = txt End Function
Макросы разрешить просто: меню Сервис-Макрос-Безопасность-Уровень_безопасности-Низкий (Средний). В следующей открываемой книге макросы уже разрешены. С паролем сложнее. Вы не пробовали войти в закрытую на замок дверь? Хотя воры заходят...
Ребята помогите пожалуйста сделать чтоб писало: белорусских рублей и без копеек И я не могу в книге в которой нужно это сделать добавить макрокс, там стоит пароль и макроксы все отключены. Как это обойти?
С 2004 года для написания различных бухгалтерских документов, отчетов и т.п. пользуюсь для Office 2003, 2007 приложенным файлом. Инструкция по установке приложена. Работает безупречно. Пытался неоднократно найти что-то по-лучше, но ничего не нашел. Выводит прописью число,или в руб. и копейках, или в валюте
А если я хочу что бы сумма прописью писалась на русском языке но за место рублей был узбекский сум?
Сообщение от ale-kozak Мелкий бух, попробуйте вот эту штуку. В архиве и инструкция Спасибо! очень нужная вещь, подкрепил в момент, и все заработало, супер! Спасибо огромное!
За основу брал макрос OLaf. Исправлена отекстовка для первой 9-ки. Кроме рублей и долларов добавлены евро, гривны, внесение иной валюты без склонения, опускание наименования валют и сотые: копейки, центы. Сотые добавляются автоматом, если они есть в числе. Добавлен VB атрибут макроса, чтобы было видно описание макроса и аргументов при вызове.
В Excel-2003 личная книга макросов называется PERSONAL.XLS и находится в C:\Documents and Settings\пользователь\Application Data\Microsoft\Excel\XLSTART Если книги нет, она создается автоматически при первой записи макроса в эту книгу: включить макрорекодер, в окошке "Запись макроса" выбрать "Сохранить в личную книгу макросов". И - да будет счастье
Сообщение от vikttur Не совсем так. Макросы можно хранить не в книге, но в в личной книге макросов. Вызывать их исполнение можно из любого документа Excel. Естественно, только на той машине, где эти макросы есть в PERSONAL.XLS Объясните следующей тупой: это как конкретно понимать по шагам сделать ?Спасибо. А вообще я даже не могла представить что эту тему можно было поднять...ооочень много лет стояла эта проблема..щас начну изобретать вернее пробовать тоже сделать..но не верю, аж, что получится,ну не верю. иначе -будет счастье.
Огромное спасибо!!!
БОЛЬШОЕ СПАСИБО
Большое Спасибо !!!! Все Работает !
Спасибо большое, дуре объяснили
vikttur, да, про шаблоны я забыл
Сообщение от Octopus lena_lena_lena, макрос не бывает из воздуха, он прописан в каком-то конкретном документе либо в каком-то конкретном листе этого документа. Макросы не мигрируют из одного документа в другой. Не совсем так. Макросы можно хранить не в книге, но в в личной книге макросов. Вызывать их исполнение можно из любого документа Excel. Естественно, только на той машине, где эти макросы есть в PERSONAL.XLS
lena_lena_lena, макрос не бывает из воздуха, он прописан в каком-то конкретном документе либо в каком-то конкретном листе этого документа. Макросы не мигрируют из одного документа в другой.
Все сделала по инструкции. И все работает! Но только в пределах того документа, который был открыт, когда прописывала макрос. К тому же документ надо сохранять в формате с поддержкой макросов. При создании нового или открытии любого другого документа приходится прописывать макрос заново! Это так и должно работать???
Сообщение от ale-kozak Мелкий бух, попробуйте вот эту штуку. В архиве и инструкция И у меня ваша штука работает! Спасибо огромное!!! Огромное человеческое спасибо!))) Теперь, в общей сложности,на работе, при закрытии смены буду экономить в среднем минут по 20!!! А в месяц, а в год сколько набегает?!?!?! ))))))))
ура!!!!! заработало! Спасибо большое!!!
ale-kozak, спасибо, сейчас попробую.
Мелкий бух, попробуйте вот эту штуку. В архиве и инструкция
Ответьте, пожалуйста, для особо "одаренных": все по-шагово делаю, все ок. Дошла до п.6 - где "Все сохраняем". Как??? Эксель открываю, не закрывая этого окна, где скопированная функция - работает, закрываю окно с функцией - исчезает "определенные пользователем". Понимаю, что надо предварительно СОХРАНИТЬ. КАК? Тупое нажатие на "дискетку" сохраняет файл... Закрытие модуля через Х не предлагает сохранения...
ХМ, НАВЕРНО ЕСЛИ ПОСЛЕДНЯЯ ЦИФРА 1 - ТО ГРИВНА, ЕСЛИ ОТ 2-4 ТО ГРИВНЫ ИНАЧЕ ОТ 5 - *0 ГРИВЕН, ТОГДА ТАК
Здравствуйте! Большое спасибо за программку. А есть ли возможность изменения валюты? (например исчисление в украинских гривнах) Писал код сам в отличие от других, не дробил исходник на триады После вставки кода в модуль функцию использовать следующим образом: на листе пишем формулу =Число_в_текст(ссылка на число; Valuta) где Valuta=0 для долларов и Valuta=1 для рублей Добавлю в функцию 3 для гривен как только выложишь правильное склонения для этой валюты
Попробуйте написать Olaf на почту - мне он не отказал с ЧисламиПрописью. Возможно у него что-нибудь подобное есть.
Правила форума