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

Страницы: 1
Вставка строки в "Умную таблицу", При заполнении ячейки первой строки.
 
Доброго времени суток.
В файле:
Лист2 Таблица2 - все нормально код рабочий. Также нужно и в Таблица1 Лист1.
Вся проблема в том, что на листе 1 заполняем первую строку (столбец 3), а она пустая. Т.Е. последняя заполненная строка rngCell = Nothing.
Событие должно наступать при Worksheet_Change.
Спасибо.
Изменено: KonstantinK - 14.01.2021 12:53:46
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
VBA. Вычисление факториала типа n!/m!(n-m)!
 
Вычисление в пользовательской функции VBA простого факториала n! понятно
Код
Function Факториал(ByVal n As Long) As Double
n = n - 1
    If n = 0 Then
        Факториал = 1
        Exit Function
    End If
Факториал = Факториал(n) * (n + 1)
End Function
а вот если нужно найти скажем число сочетаний:
n!/m!(n-m)!

Самым простым способом было бы записать макрос, но к сожалению функция, как процедура, не работает.
Каким образом можно адаптировать функцию выше не понимаю?
Подскажите кто знает.
Спасибо.
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
Диалоговое окно пользовательской формы, При закрытии ошибка типа #знач
 

Когда закрываем диалоговое окно пользовательской формы и надстройки кнопкой ОК конструкция Application.Dialogs(xlDialogFunctionWizard).Show воспроизводит как ИСТИНА и закрывает окно вставляя в активную ячейку формулу, но если при этом мы не ввели адрес вычисляемой ячейки в поле "n"диалогового окна, то естественно получаем ошибку типа #знач .
Попробовал решить задачу через обработчик ошибок:

Код
Sub NumbersWords(control As IRibbonControl)
  Dim tmp As Variant
  tmp = ActiveCell.FormulaR1C1
  On Error GoTo Error_User
    ActiveCell.FormulaR1C1 = "=СУММАПРОПИСЬЮ()"
    Application.Dialogs(xlDialogFunctionWizard).Show
  
Error_User:
    ActiveCell.FormulaR1C1 = tmp
End Sub

Теперь активная ячейка очищается даже если введен адрес ячейки в поле "n"?
Что-то здесь не так? Подскажите плиз.


На всякий случай приложу файл надстройки.

В файле закоментирована предидущая верся процедуры NumbersWords  

Кто хочет — ищет способы, кто не хочет — причины (Сократ)
Вызов функции из надстройки, Проблема с вызовом ползовательской функции.
 
Доброго времени суток!
Пытаюсь сделать надстройку и сразу ступор. Есть функция - число в текст. Надстройку подключил. При клике на кнопке "Цифры прописью" вкладка "CATHARSIS" функция вставляется в ячейку, а должно открываться диалоговое окно функции для ввода аргументов. По крайней мере так работает алгоритм без надстройки. Помогите разобраться, в чем проблема?
В приложении файл надстройки.
Спасибо.
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
Действия при выборе пункта списка на Ленте для dropDown как в comboBox?, onChange для dropDown (Ribbon XML)
 
При запуске Excel, по умолчанию, предлагаются заранее определенные пункты списка -> Личная вкладка -> По умолчанию при запуске. Здесь у меня два решения этой задачи с помощью dropDown.
Но теперь при выборе пункта меню возникает ошибка? Не пойму чего не хватает. Результат должен быть как с comboBox --> Лента-> При выборе пункта.
Дело в том, что dropDown не предполагает onChange. А onAction  вызавает ошибку.
Хотя мне кажется, что дело в самом теле процедуры ClickItemID вызываемой onAction.
Ribbon XML:
Код
<?xml version="1.0" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" xmlns:МПИ="http://customui.blogspot.ru">
    <ribbon startFromScratch="false">
      <tabs>
         <tab id="мояВкладка" label="Личная вкладка" insertBeforeMso="TabHome" keytip="ЁЖ">
            <group id="Параметры" label="По умолчанию при запуске">
               <dropDown id="Пример1" 
                  getSelectedItemID="get_id" 
                  label="Пример 1"  
                  screentip="Выбор" 
                  supertip="Необходимо выбрать." 
                  onAction="ClickItemID">
                     <item id="item1" label="Не печатать" imageMso="XDPPClose" />
                     <item id="item2" label="1 копия" imageMso="ChangePrinter" />
                     <item id="item3" label="2 копии" imageMso="ChangePrinter" />
               </dropDown>
               <dropDown id="Пример2" 
                  getSelectedItemID="CallbackDDGetSelectedItemID" 
                  label="Пример 2"  
                  screentip="Выбор" 
                  supertip="Необходимо выбрать." >
                     <item id="item11" label="Не печатать" imageMso="XDPPClose" />
                     <item id="item12" label="1 копия" imageMso="ChangePrinter" />
                     <item id="item13" label="2 копии" imageMso="ChangePrinter" />
               </dropDown>
            </group>
            <group id="Click" label="При выборе пункта">
               <comboBox id="ClickItem"
                  label="Результат при клике"
                  onChange="ClickItemID">
                     <item id="item21" label="Не печатать" imageMso="XDPPClose" />
                     <item id="item22" label="1 копия" imageMso="ChangePrinter" />
                     <item id="item23" label="2 копии" imageMso="ChangePrinter" />                  
               </comboBox>
            </group>
         </tab>
      </tabs>
   </ribbon>
</customUI>
VBA:
Код
Option Explicit
Public MyRibbon As IRibbonUI
'Пример 1
Sub get_id(control As IRibbonControl, _
                            ByRef ID)
    ID = "item3"
End Sub
'Пример 2
Sub CallbackDDGetSelectedItemID(control As IRibbonControl, _
                            ByRef ID)
        Select Case control.ID
            Case "Пример2"
                ID = "item13"
        End Select
End Sub

Sub ClickItemID(control As IRibbonControl, _
                            Text As String)
    ActiveWorkbook.Worksheets("Лист1").Cells(1, 1) = Text
End Sub
Спасибо.
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
Как получить данные ячейки строки "Итоги" из Умной таблицы
 
Доброго времени суток!

С конструкцией Таблица12[[#Итоги];[4]] - проблем нет, но не все так просто.

Дело в том, что эта формула стоит в другой умной таблице, где Таблица12 не константа а переменная.
Т.е. имя таблицы из которой я хочу получить данные находится в ячейке с выпадающим списком (списком таблиц). Список получаем через Данные - Проверка данных - Тип данных - Список (источник данных вида =ДВССЫЛ(R12C1&"[Наименование]"))
Другими словами формула, как мне казалось, должна выглядеть так:

R[-2]C[[#Итоги];[4]]  - где R[-2]C - ссылка на ячейку с именем умной таблицы из которой получаем данные итоговой строки.
Так ведь нет, не получается. Как только не пробывал - результата нет.
Формулы ДВССЫЛ(), ВПР(), Т() задачу не решают.

Как получить данные Итогов в моем случае?

Спасибо.
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
Как перренести данные из формы в таблицу, Где ошибка?
 
Доброго времени соток.
Весь мозг взорвал. Не вижу - в чём проблема?  :(
Код
Private Sub CommandButton4_Click() ' внесение изменений в бланки
Dim myTable As ListObject, myTableA4 As ListObject 
Dim x As Long
Dim n, myArray 
    n = GeneralForm1.ComboBox1.Value 
    Set myTable = Worksheets("Накладная").ListObjects("Nakladnaya") 
    Set myTableA4 = Worksheets("Накладная").ListObjects("NakladnayaA4")
    myArray = myTable.DataBodyRange 
        For x = LBound(myArray) To UBound(myArray) 
            If n = myArray(x, 2) Then 
                Call SheetActivate
                        myArray(x, 2) = GeneralForm1.TextBox3.Value
                        myArray(x, 3) = GeneralForm1.TextBox2.Value
                        myArray(x, 4) = GeneralForm1.TextBox1.Value
            End If
        Next x
End Sub
Почему при нажатии на кнопку ничего не происходит?
Спасибо.
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
Как обратиться к диапазону Умной таблицы?
 
Доброго времени суток!
Как обратиться к диапазону Умной таблицы. Написал код - он рабочий. Но на мой взгляд так писать не совсем верно.
Код
Private Sub ComboBox1_Change()
Dim n As String
Dim i As Long
Dim lLastRow As Long
Dim rgResult As Range
    lLastRow = Cells(Rows.Count, 2).End(xlUp).Row - 1
    n = ComboBox1.Text
Set rgResult = Range("B7:B14").Find(n, , xlValues)

    For i = 7 To lLastRow Step 1
        If rgResult = n Then
            rgResult.Select
    End If
    Next

End Sub
Я имею ввиду диапазон Range("B7:B14").
Дело в том что  у нас есть объект Умная таблица "Таблица1"  внутри которой именованный диапазон/массив "Наименование", а мы обращаемся к колонке активного листа.
А если в колонке "В" над таблицей будут записи? ...
Или колонка "В" не закончится на 14 строке?.... Можно, конечно написать Range("B7:B"), но опять обращаемся к колонке листа.
А что если взять и переместить таблицу внутри листа со смещением? И такое может быть.

Справка VBA так и предлагает обращаться Range("Test")? в моём случае Range("Наименование"), или Application.Goto "Test" - как бы не так??? Ни чего не выходит.
Объявлял объект, присваивал значения - ни чего и ни как?

Кто знает - подскажите.
Спасибо.
-
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
Как передать значение формулы FormulaR1C1 в переменную "n"
 
Доброго времени суток!
Мне нужно передать значение формулы в переменную.
Т.е. сумма должна выводится макросом прописью.
Не формулу в ячейку.
Как реализовать задачу?
Код
Sub Mani()
    Dim General_A5 As Worksheet
    Dim Nkl_A5 As ListObject
    Dim k As Integer
    Dim n As String
       
    Set General_A5 = ThisWorkbook.Worksheets("Накладная")
    Set Nkl_A5 = General_A5.ListObjects("Nakladnaya")

    k = Nkl_A5.ListRows.Count
    n = General_A5.Range("Sum_A5")
    General_A5.Range("TotalText") = "Всего наименований: " & k & ", на общюю сумму " & n
    General_A5.Range("C12").FormulaR1C1 = "=slova(Nakladnaya[[#Totals],[Сумма]],3)" ' эта строка должна соответствовать переменной "n"
End Sub
Спасибо.
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
Как указать путь к текущей папке, если адрес текущей папки может меняться?, при сохранении шаблона с поддержкой макросов через диалоговое окно "Сохранить как"
 
Доброго времени суток!

Мне нужно файл .xltm при вызове диалогового окна "Сохранить как" сохранить в текущей папке.Сразу скажу, что те ответы и примеры, которые есть на форуме мне не подходят. Также те примеры, что находил в сети тоже мимо. Дело в том, что есть много разных вариантов vba текстов вполне рабочих, но все они ориентированы на обычные excel файлы, а моём случае это файл шаблона с поддержкой макросов. Что я ни пробовал, всё равно для сохранения открывается системная папка "Документы". Есть подозрение,  что нужно искать обходной манёвр.
Код
Sub FileSaveAs(control As IRibbonControl)
Dim FileName As String
Dim CellValue As String
Dim xlfFileFormat As XlFileFormat: xlfFileFormat = xlOpenXMLWorkbookMacroEnabled
Dim Puth As String

'Вызов диалогового окна "Сохранить как" с заполнением имени файла
CellValue = ActiveWorkbook.Worksheets("Данные").Cells(3, 3)
FileName = "Безнал_Счёт " & CellValue

Puth = "\"
Application.Dialogs(xlDialogSaveAs).Show FileName, xlfFileFormat, Puth
End Sub

Кнопка -->"Рабочая вкладка"  --> "Сохранить как"

Спасибо.
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
Подсчет рабочих часов в праздничные дни
 
Всем доброго времени суток!
Нужно посчитать количество рабочих часов только в «пр» - праздники.
В ячейке АК9 решение есть но не хочется использовать лишнюю строку, да это и не удобно.
АК10 и АК11 два варианта, но и там и там ошибка #ЗНАЧ! Такое чувство, что решение где-то рядом, но не получается.
Пожалуйста, подскажите как решить.
Спасибо.
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
Выделение праздничных дней в графике работ
 
Задача: Лист «График на …» при смене месяца и года (ячейка -  Месяц)
1.       меняется число месяца – сделано форматированием ячейки
2.       меняется день недели в соответствии с датой - сделано форматированием ячейки
3.       выделяются серым цветом графы со строки 9 по строку 113, соответствующие праздничным и выходным дням из таблицы на листе «Праздники и выходные» - вот тут проблемка :( . Почему в ячейке D9 на  листе «График …» и  в ячейке A1 лист «Праздники и выходные» стоит дата 01.01.2016, а при контрольном выводе на лист «График на …» в ячейках A1, A2 видим совсем другие даты.

Вопрос: Подскажите, что не так, где ошибка, как правильно? Почему циклы работают с таким «тормозом»?
И еще вопрос: почему ячейка B120 на листе «Праздники и выходные» видит в ячейке A120 дату, (январь 1900 года) ведь там пусто?

Спасибо.
Кто хочет — ищет способы, кто не хочет — причины (Сократ)
Страницы: 1
Loading...