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

Страницы: 1
Через сколько периодов прибыль станет больше вложений?, Решение с накопительным итогом, но без промежуточных расчётов
 
Здравствуйте, уважаемые коллеги!
Прошу Вас о помощи в решении следующей задачи:

Есть следующие входные данные:

Цена объекта: 2 500 000

Ежегодная доходность: 150 000
Ежегодная индексация доходов: 12%
Эксплуатационные расходы: 70 000

В 1 год общая прибыль от объекта составит:      150 000 - 70 000 = 80 000
Во  2 год общая прибыль от объекта составит:   80 000 + (150 000*1,12 - 70 000) = 178 000
В 3 год общая прибыль от объекта составит:      178 000 + (168 000*1,12 - 70 000)= 296 160
В 4 год общая прибыль от объекта составит:      296 160 + (188 160*1,12 - 70 000) = 436 899

И так далее.

С помощью lamda я составил функцию, которая считает общую прибыль за указанное количество периодов:
Код
=LAMBDA(КолВоЛет;ГодДоход;ГодИндекс;ГодРасход; 
ЕСЛИ(КолВоЛет<=0; 0; 
(ГодДоход*(1+ГодИндекс)^(КолВоЛет-1)-ГодРасход)+ПрибыльЗаПериод(КолВоЛет-1;ГодДоход;ГодИндекс;ГодРасход)))


Но задача состоит в том, чтобы определить, через сколько периодов общая прибыль станет выше цены объекта. Сможете помочь?
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Получение данных из интернет магазина Кофе, Обновляемый запрос на основе Power Query
 
Здравствуйте!

Прошу помощи в выгрузке данных по товарам (только кофе) в таблицу из интернет магазина torrefacto.
Хочу получить обновляемый запрос на основе Power Query.

Бюджет: 1 500 р. на карту сбера.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Ошибка при переключении вкладок MultiPage в UserForm, Ошибка: "вызванный объект был отключен от клиентов"
 
Здравствуйте!

При переключении вкладок MultiPage - фокус должен устанавливаться на определенный элемент управления формы.

При обычном переключении вкладок все работает, но вот если нажимать правую и левую кнопку мыши одновременно и делать это быстро, то вылетает ошибка:
Цитата
Run-time error '-2147417848 (80010108)':
Automation error
Вызванный объект был отключен от клиентов.


Я, конечно, не собираюсь нажимать правую и левую кнопку мыши одновременно  :) , но все-таки хотелось бы исключить возможность возникновения такой ошибки.

Условный пример прикладываю, помогите пожалуйста решить проблему.
Изменено: Valo - 12.03.2020 21:27:57
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Исправить неисправность надстройки, При включении надстройки формы и макросы не работают
 
Здравствуйте!

Имеется надстройка, сохраненная как xlam и сама по себе она функционирует: формы открываются, макросы работают.
Однако стоит только включить "галочку" и перезапустить Excel, как надстройка отказывается работать и выдает самые неожиданные ошибки.

Работа заключается в том, чтобы исправить ошибку и указать на нее, чтобы дальше я уже понимал как нужно работать с надстройками.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Запретить переход на следующий TextBox при определенном условии, Не получается сохранить фокус с помощью SetFocus и события AfterUpdate
 
Здравствуйте, уважаемый эксперты!
Помогите пожалуйста решить задачу.
В форме имеются несколько TextBox, которые последовательно заполняются.
Не получается реализовать следующее:
Если пользователь ввел "0" и переходит на следующее поле, то вылетает соответствующий MsgBox, некорректный TextBox очищается, а фокус остается на месте.
Код
Private Sub Количество_AfterUpdate()
    If Количество <= 0 Then
        MsgBox "Введите число больше нуля"
        Количество = ""
        Количество.SetFocus
        Exit Sub
    End If
End Sub
Такой подход не срабатывает, фокус все равно переходит на следующий TetxtBox.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Выделение нескольких строк в таблице через форму, Не знаю, как выделить несколько строк в основной таблице, используя listbox multiselect extended
 
Приветствую вас, уважаемые эксперты!
Помогите пожалуйста решить вопрос с выделением строк в таблице.
Имеется условная таблица, на основе которой создается форма с listbox. По событию change могу выделять по одной строке в основной таблице, но очень бы хотелось иметь возможность выделить множество строк, причем непоследовательно.
Как добавить к уже выделенному диапазону новое выделение, не снимая старого?



Код
Option Explicit
Public Таблица1 As ListObject

Private Sub ListBox1_Change()
    Dim i As Integer
    
    For i = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(i) Then
            Таблица1.ListRows(i + 1).Range.Select
        End If
    Next
End Sub

Private Sub UserForm_Initialize()

    Set Таблица1 = ThisWorkbook.Worksheets("Лист1").ListObjects("Таблица1")
        
    With ListBox1
        ListBox1.Clear
        Dim i As Integer
        For i = 1 To Таблица1.ListRows.Count
            .AddItem
            .Column(0, .ListCount - 1) = Таблица1.DataBodyRange(i, 2)
            .Column(1, .ListCount - 1) = Таблица1.DataBodyRange(i, 4)
        Next
    End With
    
End Sub
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Найти ошибку в макросе, При определенной условиях после закрытия формы, Excel вылетает
 
Приветствую!
Пишу достаточно большую программу и сломал уже себе весь мозг, пытаясь понять, почему после закрытия формы - программа вылетает.
Задача разобраться в причинах сбоя и соответственно помочь устранить проблему.
Цена вопроса: 500руб. на карту сбербанка.

p.s.
В тему обычных вопросов выкладывать проект не хочу.
Понимаю, что в чужом коде разбираться дело сомнительное, поэтому лучше наверное даже связаться по скайпу, чтобы я сразу указал, где происходит затык.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Событие для группы элементов управления с похожим именем, Выполнить событие для определенных контролов, не перебирая все, находящиеся на форме
 
Приветствую, уважаемые эксперты!
Прошу оказать помощь в решении следующей задачи:
  • Имеется форма.
  • Главный элемент управления, определяющий, что за параметры попадут в таблицу является multipage.
  • На каждой странице multipage находятся элементы управления, часть из которых имеет однотипное имя (txtD_19; txtD_20 и т.д.)
  • По нажатию на кнопку "Добавить"  - определяется в какой столбец добавить данные и затем они заносятся в таблицу.
На данный момент, разработанный мной макрос проверят все названия элементов на вкладке на соответствие маске, например like "txtD_*" и заносит данные в определенный столбец на основании названия элемента.

Так как в реальном проекте элементов управления много, то быстродействие такого способа не очень устраивает.
Пробовал прописывать код под каждый TextBox, быстродействие лучше, однако терпения писать код под каждый TextBox у меня не хватает, тем более, что каждый TextBox надо еще и проверить.

В уме я представляю себе следующий вариант решения:
Объединить в массив набор нужный элементов и проводить проверку только по элементам в этом массиве, а не на всей форме.
Однако, как реализовать такой алгоритм я не знаю и очень надеюсь на вашу помощь.

Прикладываю минимизированный пример.
Изменено: Valo - 04.01.2019 10:25:18
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Макрос сохранения книги. Перехват ошибки при отказе от перезаписи
 
Здравствуйте, уважаемые эксперты!
Понимаю, что вопросов о сохранения книги с помощью макроса великое множество, но найти именно то, с чем у меня проблема - не получилось. Поэтому надеюсь на вашу помощь.
Собственно вот макрос, который я составил:
Код
Sub Сохранение()

    Папка = "D:\" & Range("A1")
    Подпапка = Range("A2")
    Путь = Папка & "\" & Подпапка
    Название = Range("A3")
    ИмяФайла = Путь & "\" & Название
    
    If Dir(Папка, vbDirectory) = "" Then
        MkDir (Папка)
        ChDir (Папка)
        Else: ChDir (Папка)
    End If
    
    If Dir(Путь, vbDirectory) = "" Then
        MkDir (Путь)
        ChDir (Путь)
        Else: ChDir (Путь)
    End If
    
    ActiveWorkbook.SaveAs (ИмяФайла)

End Sub
Меня почти полностью устраивает, как он работает, если бы не одно но:
Когда я сохраняю файл под уже существующем именем, то Excel меня вполне справедливо спрашивает, хочу ли я перезаписать файл.
Если я отвечаю "НЕТ", то появляется ошибка:

Мне бы хотелось, чтобы если я ответил "НЕТ", то ошибка бы не вылезала.

Можно в принципе написать вначале On erroe resume next, но что-то мне подсказывает, что это не лучший вариант.
Может есть способ предотвратить именно эту ошибку? Или как-то завершить макрос при ответе "НЕТ"?
Изменено: Valo - 30.11.2018 20:10:43
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Полные названия месяцев при группировке полей в сводной таблице, Вместо "янв" - январь, "фев" - февраль и т.д.
 
Приветствую, уважаемые эксперты!
Помогите пожалуйста решить следующую задачу.
В сводной таблице, при группировке дат по месяцам, отображаются сокращенные названия месяцев.
Очень хотелось бы понять, как отображать полные названия месяцев? Не "янв", а январь и т.д.
Не совсем еще понимаю, почему через обычный "формат ячеек" не получается поправить это дело?
Изменено: Valo - 12.11.2018 20:08:10
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Пользовательская функция для поиска пересечения в кросс-таблице по 2-м неточным числовым значениям осей
 
Уважаемые эксперты по Excel и VBA!
Многие часы ломаю голову, пытаясь написать пользовательскую функция с помощью разбора обозначений формул при записывании макроса, но все бес толку.
В работе часто приходится использовать достаточно большую формулу массива для поиска значения в диапазоне на пересечении ближайших больших значений по строкам и столбцам:

Код
{=ИНДЕКС(ЗНАЧЕНИЯ;
ПОИСКПОЗ(МИН(ЕСЛИ(ДИАПАЗОН_Y>=Искомый_Y;ДИАПАЗОН_Y;""));ДИАПАЗОН_Y;0);
ПОИСКПОЗ(МИН(ЕСЛИ(ДИАПАЗОН_X>=Искомый_X;ДИАПАЗОН_X;""));ДИАПАЗОН_X;0))}

Задача состоит в том, чтобы пользовательская функция приобрела вид:
Код
=ПОБЛИЖБОЛ(ЗНАЧЕНИЯ; ДИАПАЗОН_Y; Искомый_Y; ДИАПАЗОН_X; Искомый_X)

Прошу помощи в создании пользовательской функции в Excel средствами VBA, используя в коде уже имеющиеся в EXCEL формулы (ИНДЕКС; ПОИСКОПОЗ и т.д.).
Изменено: Valo - 23.02.2018 01:44:48
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Список значений, удовлетворяющих условию
 
Приветствую!
Не могу решить казалось бы простую задачу.
Имеется столбец "Дата" и столбец "Доступно".
В столбце "Доступно" может присутствовать ноль.

Задача:
Создать список допустимых значений в поле "Выбрать дату".
Допустимыми значениями являются значения из столбца "Дата" для которых "Доступно" больше нуля.

Дата Доступно
01.02.2016
6
02.03.2016
0
01.07.2017
7
03.05.2017
4
26.06.2017
7
11.07.2017
0
В данном примере, хочу получить список из значений: 01.02.2016; 01.07.2017; 03.05.2017; 26.06.2017

Как вариант пробовал создавать отдельную таблицу с формулой, которая выводит значения больше ноля, а для нулевых выводит пустое значение "". Все бы хорошо, только при создании списка, в выбор "по стрелке" попадают эти самые пустые значения "".

Надеюсь на вашу помощь!
Изменено: Valo - 30.08.2017 20:39:11
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Страницы: 1
Наверх