Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Сумма прописью (английский язык, строчные и заглавные)
 
"Перевёл" готовый код
На данный момент он мне выдает:
Цитата
Eighty three thousands nine hundred sixty nine UAH 10 kop.

А требуется
Цитата
UAH Eighty three thousands nine hundred and sixty nine 10 kop.
вот код
Код
Function SUMINWORDSEN(n As Double, curr As Variant, kop As Variant) As String
 'moonexcel.com.ua
 Dim Nums1, Nums2, Nums3, Nums4 As Variant
   
 Nums0 = Array("", "one ", "two ", "three ", "four ", "five ", "six ", "seven ", "eight ", "nine ")
 Nums1 = Array("", "one ", "two ", "three ", "four ", "five ", "six ", "seven ", "eight ", "nine ")
 Nums2 = Array("", "ten ", "twenty ", "thirty ", "forty ", "fifty ", "sixty ", "seventy ", _
                        "eighty ", "ninety ")
 Nums3 = Array("", "one hundred ", "two hundred ", "three hundred ", "four hundred ", "five hundred ", "six hundred ", "seven hundred ", _
                        "eight hundred ", "nine hundred ")
 Nums4 = Array("", "one ", "two ", "three ", "four ", "five ", "six ", "seven ", "eight ", "nine ")
 Nums5 = Array("ten ", "eleven ", "twelve ", "thirteen ", "forteen ", _
                        "fifteen ", "sixteen ", "seventeen ", "eighteen ", "ninteen ")
    
 If n < 1 Then
   SUMINWORDSEN = "Zero " & curr & " " & Round((n - Fix(n)) * 100) & " " & kop
     
If curr = "" Then
   SUMINWORDSEN = "Zero"
End If
        
   Exit Function
 End If
 'ðîçä³ëÿºìî ÷èñëî íà ðîçðÿäè, âèêîðèñòîâóþ÷è äîïîì³æíó ôóíêö³þ Class
 ed = Class(n, 1)
 dec = Class(n, 2)
 sot = Class(n, 3)
 tys = Class(n, 4)
 dectys = Class(n, 5)
 sottys = Class(n, 6)
 mil = Class(n, 7)
 decmil = Class(n, 8)
 sotmil = Class(n, 9)
 bil = Class(n, 10)
     
'ïåðåâ³ðÿºìî ì³ëüÿðäè
   
 Select Case bil
   
Case 1
     bil_txt = Nums1(bil) & "billion "
Case 2 To 4
     bil_txt = Nums1(bil) & "billions "
Case 5 To 9
     bil_txt = Nums1(bil) & "billions "
            
 End Select
     
'ïåðåâ³ðÿºìî ì³ëüéîíè
   
 Select Case sotmil
   Case 1 To 9
     sotmil_txt = Nums3(sotmil)
 End Select
    
 Select Case decmil
   Case 1
     mil_txt = Nums5(mil) & "millions "
     GoTo www
   Case 2 To 9
     decmil_txt = Nums2(decmil)
 End Select
   
 Select Case mil
 Case 0
     If decmil > 0 Then mil_txt = Nums4(mil) & "millions "
   Case 1
     mil_txt = Nums1(mil) & "million "
   Case 2, 3, 4
     mil_txt = Nums1(mil) & "million "
   Case 5 To 9
     mil_txt = Nums1(mil) & "millions "
 End Select
   
 If decmil = 0 And mil = 0 And sotmil <> 0 Then sotmil_txt = sotmil_txt & "millions "
   
www:
 sottys_txt = Nums3(sottys)
 'ïåðåâ³ðÿºìî òèñÿ÷³
 Select Case dectys
   Case 1
     tys_txt = Nums5(tys) & "thousands "
     GoTo eee
   Case 2 To 9
     dectys_txt = Nums2(dectys)
 End Select
   
 Select Case tys
   Case 0
     If dectys > 0 Then tys_txt = Nums4(tys) & "thousands "
   Case 1
     tys_txt = Nums4(tys) & "thousand "
   Case 2, 3, 4
     tys_txt = Nums4(tys) & "thousands "
   Case 5 To 9
     tys_txt = Nums4(tys) & "thousands "
 End Select
   
 If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & " thousands "
   
eee:
 sot_txt = Nums3(sot)
 'ïåðåâ³ðÿºìî äåñÿòêè
 Select Case dec
   Case 1
     ed_txt = Nums5(ed)
     GoTo rrr
   Case 2 To 9
     dec_txt = Nums2(dec)
 End Select
    
 ed_txt = Nums0(ed)
  
rrr:
'ôîðìóºìî ï³äñóìêîâèé ðÿäîê
   
 SUMINWORDSEN = bil_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt _
 & tys_txt & sot_txt & dec_txt & ed_txt & curr & " " & Round((n - Fix(n)) * 100) & " " & kop
  
If curr = "" Then
   SUMINWORDSEN = bil_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt _
 & tys_txt & sot_txt & dec_txt & ed_txt
 End If
   
 SUMINWORDSEN = UCase(Mid(SUMINWORDSEN, 1, 1)) + Mid(SUMINWORDSEN, 2)
   
End Function
    
'äîïîì³æíà ôóíêö³ÿ äëÿ âèä³ëåííÿ ç ÷èñëà ðîçðÿä³â
Private Function Class(M, I)
  Class = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1))
End Function

Изменено: Shoez - 27.07.2016 21:29:26
Сумма прописью (английский язык, строчные и заглавные)
 
Добрый вечер
Подскажите пожалуйста скрипт на формулу, чтобы получать такой результат, как, например:
Цитата
исходные данные: Total sum including VAT 83969,10
исходные данные: VAT (20%)                    13994,85

Какой нужен результат формулы: UAH Eighty three thousand nine hundred and sixty nine 10 kop. including VAT amounting to UAH 13994,85
Пытался модифицировать готовый скрипт от майкрософта, но т.к. мои познания в VBA стремятся к нулю - ничего не вышло
Вот что я пытался изменять
Код
Option Explicit
'Main Function
Function SpellNumber(ByVal MyNumber)
    Dim Dollars, Cents, Temp
    Dim DecimalPlace, Count
    ReDim Place(9) As String
    Place(2) = " Thousand "
    Place(3) = " Million "
    Place(4) = " Billion "
    Place(5) = " Trillion "
    ' String representation of amount.
    MyNumber = Trim(Str(MyNumber))
    ' Position of decimal place 0 if none.
    DecimalPlace = InStr(MyNumber, ".")
    ' Convert cents and set MyNumber to dollar amount.
    If DecimalPlace > 0 Then
        Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
                  "00", 2))
        MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    End If
    Count = 1
    Do While MyNumber <> ""
        Temp = GetHundreds(Right(MyNumber, 3))
        If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
        If Len(MyNumber) > 3 Then
            MyNumber = Left(MyNumber, Len(MyNumber) - 3)
        Else
            MyNumber = ""
        End If
        Count = Count + 1
    Loop
    Select Case Dollars
        Case ""
            Dollars = "No Dollars"
        Case "One"
            Dollars = "One Dollar"
         Case Else
            Dollars = Dollars & " Dollars"
    End Select
    Select Case Cents
        Case ""
            Cents = " and No Cents"
        Case "One"
            Cents = " and One Cent"
              Case Else
            Cents = " and " & Cents & " Cents"
    End Select
    SpellNumber = Dollars & Cents
End Function
      
' Converts a number from 100-999 into text 
Function GetHundreds(ByVal MyNumber)
    Dim Result As String
    If Val(MyNumber) = 0 Then Exit Function
    MyNumber = Right("000" & MyNumber, 3)
    ' Convert the hundreds place.
    If Mid(MyNumber, 1, 1) <> "0" Then
        Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
    End If
    ' Convert the tens and ones place.
    If Mid(MyNumber, 2, 1) <> "0" Then
        Result = Result & GetTens(Mid(MyNumber, 2))
    Else
        Result = Result & GetDigit(Mid(MyNumber, 3))
    End If
    GetHundreds = Result
End Function
      
' Converts a number from 10 to 99 into text. 
Function GetTens(TensText)
    Dim Result As String
    Result = ""           ' Null out the temporary function value.
    If Val(Left(TensText, 1)) = 1 Then   ' If value between 10-19...
        Select Case Val(TensText)
            Case 10: Result = "Ten"
            Case 11: Result = "Eleven"
            Case 12: Result = "Twelve"
            Case 13: Result = "Thirteen"
            Case 14: Result = "Fourteen"
            Case 15: Result = "Fifteen"
            Case 16: Result = "Sixteen"
            Case 17: Result = "Seventeen"
            Case 18: Result = "Eighteen"
            Case 19: Result = "Nineteen"
            Case Else
        End Select
    Else                                 ' If value between 20-99...
        Select Case Val(Left(TensText, 1))
            Case 2: Result = "Twenty "
            Case 3: Result = "Thirty "
            Case 4: Result = "Forty "
            Case 5: Result = "Fifty "
            Case 6: Result = "Sixty "
            Case 7: Result = "Seventy "
            Case 8: Result = "Eighty "
            Case 9: Result = "Ninety "
            Case Else
        End Select
        Result = Result & GetDigit _
            (Right(TensText, 1))  ' Retrieve ones place.
    End If
    GetTens = Result
End Function
     
' Converts a number from 1 to 9 into text. 
Function GetDigit(Digit)
    Select Case Val(Digit)
        Case 1: GetDigit = "One"
        Case 2: GetDigit = "Two"
        Case 3: GetDigit = "Three"
        Case 4: GetDigit = "Four"
        Case 5: GetDigit = "Five"
        Case 6: GetDigit = "Six"
        Case 7: GetDigit = "Seven"
        Case 8: GetDigit = "Eight"
        Case 9: GetDigit = "Nine"
        Case Else: GetDigit = ""
    End Select
End Function
Как сделать ссылку на ячейку из Word в Excel, если строки в расчетном документе удаляются или добавляются?
 
Михаил Лебедев,второй вариант - отличная идея. Благодарю! :)
Как сделать ссылку на ячейку из Word в Excel, если строки в расчетном документе удаляются или добавляются?
 
Может кто-то пояснить, пожалуйста, что сказал Jungl?
Изменено: Shoez - 15.07.2016 14:35:07
Как сделать ссылку на ячейку из Word в Excel, если строки в расчетном документе удаляются или добавляются?
 
Jungl,а можно немного подробнее? Я Вас не понял с диапазонами.
Как сделать ссылку на ячейку из Word в Excel, если строки в расчетном документе удаляются или добавляются?
 
Цитата
Jungl написал: Приложите пример, как должно выглядеть
Вот ворд с линками на эксель. Если добавить в экселе строку между расчетами, то после обновления линков - они будут ссылаться не на то, что необходимо
Как сделать ссылку на ячейку из Word в Excel, если строки в расчетном документе удаляются или добавляются?
 
Доброе утро.

Подскажите, пожалуйста. У меня есть документ в Word и Excel с расчетными данными. Мне необходимо сделать ссылки из ворда в эксель на определенные расчетные ячейки. НО довольно часто в экселе придется добавлять или удалять строки. Соответственно необходимо, чтобы в ворде ссылка "следовала" за изначально залинкованой.

Надеюсь, что Вы меня поняли и сможете помочь.
Как вводить текст в сводную таблицу?
 
Добрый день, господа.

Собственно столкнулся с такой проблемой. Мне для аналитики основных средств на предприятии необходимо всё схлопнуть сводной таблицей, так как необходимо сравнивать отдельно приход, списание, на конец, амортизацию и т.п. отдельно по каждой группе.

Своего рода я нашел решение с помощью слайсеров. Стало визуально приятно и удобно. НО я не мог писать объяснения в самом пивоте.
Таким образом, что мы получаем. Есть пивот с сравнениями тех или иных данных с примененными к этому пивоту слайсерами. И я хочу непосредственно в этом пивоте писать объяснения к разницам. То есть, чтобы при переключении менялось и объяснение.

Прилагаю файл в том состоянии, на котором я застрял.
https://dropmefiles.com/7ZTkU

Помогите, пожалуйста.
Суммирование данных по условиям в вертикальных и горизонтальных диапазонах
 
Сергей, cпасибо Вам огромное.
Не могли бы Вы заодно подсказать, по поводу функции Choose, которые Вы использовали в данном файле. Если на первой странице увеличить список, то CHOOSE($A2;с1;с2;с3) надо как-то изменять?
Вопрос, скорее всего глупый, но я никогда не работал с данными функциями (choose, sumproduct)

Upd. уже понял - с1 с2 с3 это названия диапазонов :) прошу прощения
Изменено: Shoez - 20.05.2015 10:14:42
Суммирование данных по условиям в вертикальных и горизонтальных диапазонах
 
Доброе утро!

Возможно ответ на этот вопрос уже где-то есть на форуме, но я не нашел, так что извините.
Подскажите, пожалуйста, как в sumifs написать формулу с
горизонтальными и вертикальными условиями? в прилагаемом файлике
необходимо со страницы номер 2 на первую затянуть числовую информацию по
датам, в зависимости от условия AK, DL или OS. Как бы я ни писал
формулу, мне постоянно выдаёт #VALUE

Заранее спасибо
Изменено: Shoez - 20.05.2015 10:12:52
Шаринг документа с макросами
 
видимо проблема какая-то в сетке была (залаги или еще что-то) - с третьего раза открылся нормально доступ и запустились макросы... странно. Извините за отнятое время
Шаринг документа с макросами
 
ну вот я шарил через review -> share document. Поставил галочку на там, что я разрешаю всё, он мне матюкается, что нельзя править и смотреть макросы. Сохраняю, захожу опять и уже ничего не даблкликается. В документе код прописан под страничку 2 и модуль 1 есть
Шаринг документа с макросами
 
Добрый вечер, товарищи.

Подскажите, пожалуйста, возможно ли каким-то образом расшарить .xlsm документ (лежит на сервере), чтобы при этом работали макросы? То есть люди заходят и могут делать даблклик по задаче и начинается отсчет времени (стало возможным благодаря товарищу ikki, см. Прошлая тема).
Учет времени для задачи
 
ikki,дай Вам Бог здоровья! :)
Учет времени для задачи
 
ikki, Доброе утро

Подскажите, пожалуйста, что необходимо поменять в предоставленном Вами макросе, чтобы можно было запускать несколько таймеров сразу?
Ибо если запускаешь другую задачу, то предыдущий отсчет времени останавливается и начинается новый. Необходимо запускать этот отсчет сразу в нескольких задачах
Учет времени для задачи
 
Цитата
ikki написал: без кнопок
отличный вариант
а как размножать эти секундомеры? я просто, мягко говоря, не силён в вещах с вба
Учет времени для задачи
 
суть в том - что будет список задач (больше сотни)
допустим я захожу - запускаю задачу (идет отсчет времени), что-то там поделал, остановил, закрыл документ. Потом открываю - и запускаю с того же времени на котором остановился.
и нужны кнопки в самом экселе.

что-то типа такого, только с более расширенными возможностями. Чтобы я смог проставить кнопки секундомера на уже готовый список задач в готовом документе.
Изменено: Shoez - 07.05.2015 18:28:07
Учет времени для задачи
 
Добрый вечер, товарищи.

Вопрос у меня сложный (касаемо исполнения)
Подскажите, пожалуйста выполнима ли просьба или направьте куда обратиться (русские/зарубежные форумы специализированные)
Что необходимо: учёт времени.
Как я это вижу - в прикрепленном ниже файле.
Плюс должна быть возможность продолжения учета: допустим я что-то делал, нажал "стоп" - время затраченное 7 минут. Повторно нажимаю "старт" и учет продолжается с этих 7 минут.

Надеюсь, вопрос понятен.
Не работает макрос, добавленный в строку быстрого доступа
 
И да, Спасибо Вам за модифицированный код :)
Не работает макрос, добавленный в строку быстрого доступа
 
то есть с той строчкой оно думает сохранять в Personal книгу?
Не работает макрос, добавленный в строку быстрого доступа
 
Доброе утро.
Воспользовался Вашим макросом на добавление разных документов в 1
Код
Sub CombineWorkbooks()
    Dim FilesToOpen
    Dim x As Integer
 
    Application.ScreenUpdating = False  'отключаем обновление экрана для скорости
     
    'вызываем диалог выбора файлов для импорта
    FilesToOpen = Application.GetOpenFilename _
      (FileFilter:="All files (*.*), *.*", _
      MultiSelect:=True, Title:="Files to Merge"
 
    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "Не выбрано ни одного файла!"
        Exit Sub
    End If
     
    'проходим по всем выбранным файлам
    x = 1
    While x <= UBound(FilesToOpen)
        Set importWB = Workbooks.Open(Filename:=FilesToOpen(x))
        Sheets().Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        importWB.Close savechanges:=False
        x = x + 1
    Wend
 
    Application.ScreenUpdating = True
End Sub
когда добавляешь его через insert module - всё отлично работает. Но когда сохраняешь в Personal Macro Workbook и добавляешь в строку быстрого доступа - он багается
и ругается на эту строку
Код
Sheets().Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
ошибка 1004
подскажите, пожалуйста - как исправить?
Набор форматов для повторящейся процедуры, макрос
 
И насколько я понимаю - макрос Александра по сути такой же?
Набор форматов для повторящейся процедуры, макрос
 
может быть кому-то еще понадобится и пригодится :)

Спасибо Вам за вашу помощь и внимание, господа
Набор форматов для повторящейся процедуры, макрос
 
макрорекордер для данных целей не помогал.
Sanja, спасибо, но ответ я получил уже на зарубежном форуме (аналог планете эксель)

вот что прислали
Код
Sub FormatSheet()
 
Dim sh As Worksheet
 
Application.ScreenUpdating = False
 
    For Each sh In ActiveWorkbook.Worksheets
    
     On Error Resume Next
      For i = 1 To 8
          sh.Columns.Ungroup
      Next i
     On Error GoTo 0
     
     With sh.Cells
      .Borders(xlDiagonalDown).LineStyle = xlNone
      .Borders(xlDiagonalUp).LineStyle = xlNone
      .Borders(xlEdgeLeft).LineStyle = xlNone
      .Borders(xlEdgeTop).LineStyle = xlNone
      .Borders(xlEdgeBottom).LineStyle = xlNone
      .Borders(xlEdgeRight).LineStyle = xlNone
      .Borders(xlInsideVertical).LineStyle = xlNone
      .Borders(xlInsideHorizontal).LineStyle = xlNone
      .WrapText = False
      .MergeCells = False
     End With
      
     With sh.Cells.Font
      .ColorIndex = xlAutomatic
      .Size = 8
      .Name = "Arial"
     End With
      
     sh.Cells.Interior.Pattern = xlNone
 
     sh.Cells.EntireColumn.AutoFit
     sh.Cells.EntireRow.AutoFit
      
    Next sh
    
Application.ScreenUpdating = True
 
End Sub
Изменено: Shoez - 20.02.2015 22:10:36
Набор форматов для повторящейся процедуры, макрос
 
изменил
Набор форматов для повторящейся процедуры, макрос
 
Доброе утро, друзья

С макросами в экселе я столкнулся недавно из-за специфики работы (необходимо облегчить ежедневные задачи). В макросах я полное дно, без понятия как их писать - умею только добавить и нажать Play  :(  

Собственно что нужно в макросе (операция повторяется на 150+ листах):
- unmerge all cells in all sheets (не знаю как по русски - по идее отменить объединение всех клеток)
- unwrap all text in all sheets (не знаю как по-русски называется)
- цвет шрифта - автомат (на всех страницах)
- заливка - нет заливки (на всех страницах)
- размер шрифта 8 (все страницы)
- шрифт Arial (все страницы)
- Без границ (все страницы) - то есть убрать все таблички
- Автоформат ширини и высоты всех столбцов и строк (все страницы)
- снять многоуровневую группировку колонок (B:и до конца) - уровный обычно не больше 8 (все страницы)

Если не получится всё это сделать в 1 макросе, то необходимо (критично!!!) сделать макрос для данной операции:
снять многоуровневую группировку всех колонок, на всех страницах (обычно 150+). Уровней группировки не больше 8
Изменено: Shoez - 20.02.2015 12:43:34
Страницы: 1
Наверх