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

Страницы: 1 2 3 4 След.
Подстановка значений с листа на лист
 
mabusaco, если я правильно Вас понял, то вот:
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Подстановка значений с листа на лист
 
Как Вам такой вариант?
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Через сколько периодов прибыль станет больше вложений?, Решение с накопительным итогом, но без промежуточных расчётов
 
БМВ, это очень круто! Большое спасибо!
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Через сколько периодов прибыль станет больше вложений?, Решение с накопительным итогом, но без промежуточных расчётов
 
«А ларчик просто открывался»

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

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

Цена объекта: 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 р. на карту сбера.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Сравнить строки по значениям в столбцах и выделить одинаковые
 
Проверьте тогда этот вариант.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Сравнить строки по значениям в столбцах и выделить одинаковые
 
Андрей Прокофьев, дополнительный столбец допускается? :)  
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Сравнить строки по значениям в столбцах и выделить одинаковые
 
Андрей Прокофьев,а почему 3 и 5 состав не покрашены? Там же тоже используются одни и те же элементы?
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Замена столбца при выборе из списка, Заменить столбец на значения из другого листа при выборе из списка
 
Вот вариант, если исходная структура данных меняться не планируется.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Записать значение option button в ячейку из разных фреймов
 
Здравствуйте!
Ваша задача решается с помощью модулей класса.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Сбор данных на другой лист по условию даты
 
Add2 Key походу только в новых офисах работает.
Надеюсь этот вариант сработает, иначе я сдаюсь.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Сбор данных на другой лист по условию даты
 
Добавил предварительную сортировку данных.
Попробуйте.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Сбор данных на другой лист по условию даты
 
Упс, поправил формулы
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Сбор данных на другой лист по условию даты
 
Пробуйте, вроде и без предварительной сортировки работает:
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Сбор данных на другой лист по условию даты
 
Бекбол Косбаев, то что у Иванова вначале идет 02/03/20, а потом 01/03/20 это точно правильно?  
Изменено: Valo - 31.03.2020 15:45:37
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Как выбрать файлы и затем сделать условие их отбора
 
Попробуйте так:
Код
Sub CombineWorkbooks()
 
    Dim i As Integer
    Dim wbName As String
 
    'вызываем диалог выбора файлов для импорта
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = True
        .Show
        For i = 1 To .SelectedItems.Count
            wbName = Right(.SelectedItems(i), Len(.SelectedItems(i)) - Len(.InitialFileName))
            If LCase(wbName) Like "*01.01.2020*" Then
                Workbooks.Open (.SelectedItems(i))
            End If
        Next
    End With
    

End Sub
Изменено: Valo - 31.03.2020 15:31:43
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Макрос сумы ячеек по разным файлам в папке
 
dima_dso, Здравствуйте!
Цитата
dima_dso написал:
1. Чтоб вместо ручного ввода адреса ячейки в макрос (F9), после запуска макрос суммировал ячейки на которой стоит курсор.
Предполагается, что нужно каждый раз указывать новую ячейку для суммирования?

Если так, то попробуйте такой вариант:
Код
Sub Test()
Dim myPath As String, myName As String, Wb As Workbook, iSum As Single, r

    myPath = "D:\Папка\"
    
    myName = Dir(myPath & "*.xlsx")
'   цикл по всем файлам указанного типа
    Do While myName <> ""
'        открываем очередной файл в режиме "Только для чтения" и присваиваем его переменной
        Set Wb = Workbooks.Open(Filename:=myPath & myName, ReadOnly:=True)
        Wb.Activate
        
'        делаем что надо
        On Error Resume Next
        Set r = Application.InputBox("Выберите ячейку для сумирования:", Type:=8)
        
        If r Is Nothing Then
            Wb.Close SaveChanges:=False
            Exit Sub
        End If
        On Error GoTo 0
        
        iSum = iSum + WorksheetFunction.Sum(r)
        
'        закрываем файл не сохраняя изменений в нём
        Wb.Close SaveChanges:=False
'        определяем имя следующего файл в указаной директории
        myName = Dir
        
    Loop
    
    ActiveCell.Value = iSum
    
End Sub
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Сбор данных на другой лист по условию даты
 
Попробовал условия на ощупь  :)
Код
Sub PleaseHelp()
    
    Dim i As Long
    Dim j As Long
    Dim rngReportClear As Range 'Диапазон для очистки
    
    Dim wsMain As Worksheet     'Лист с иходными данными
    Dim wsReport As Worksheet   'Лист с отчетом
    
    Set wsMain = ThisWorkbook.Worksheets("Лист1")
    Set wsReport = ThisWorkbook.Worksheets("Отчет")

    'Очистка отчета
    Set rngReportClear = wsReport.Cells(1, 1).CurrentRegion.Offset(1, 0)
    Set rngReportClear = rngReportClear.Resize(rngReportClear.Rows.Count - 1, 5)
    rngReportClear.ClearContents
    
    i = 8   'Начальная строка главной таблицы
    j = 2   'Начальная стройка отчетной таблицы
    
    'Пока Таб в глвной таблице не пустой не пустой
    Do While wsMain.Cells(i, 2) <> ""
        If wsMain.Cells(i, 2) <> wsReport.Cells(j - 1, 1) Or wsMain.Cells(i, 3) <> wsReport.Cells(j - 1, 3) Then
            wsReport.Cells(j, 1) = wsMain.Cells(i, 2)
            wsReport.Cells(j, 2) = wsMain.Cells(i, 1)
            wsReport.Cells(j, 3) = wsMain.Cells(i, 3)
            wsReport.Cells(j, 4) = wsMain.Cells(i, 4)
            wsReport.Cells(j, 5) = wsMain.Cells(i, 4)
            j = j + 1
        Else
            wsReport.Cells(j - 1, 5) = wsMain.Cells(i, 4)
        End If
        i = i + 1
    Loop
    
    wsReport.Activate
    
End Sub
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
удаление содержимого из ячейке определенного цвета
 
Вот решение с самостоятельным указанием диапазонов:
  1. Нажимаете на кнопку
  2. Выбираете весь диапазон, в котором будет происходить поиск цвета
  3. Выбираете ячейку с необходимым для удаления цветом или несколько ячеек (если необходимо удалить более одного цвета
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
удаление содержимого из ячейке определенного цвета
 
Rocket, здравствуйте! :)

Следует выложить файл (об этом написано в правилах форума кстати, как и о многом другом  ;) ), так как "синий" - понятие растяжимое. Нужно знать конкретный номер цвета.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Как выбрать файлы и затем сделать условие их отбора
 
Попробуйте такой вариант
Код
Sub CombineWorkbooks()

    Dim FilesToOpen As Variant
    Dim i As Integer
    Dim importWB As Workbook

    'вызываем диалог выбора файлов для импорта
    FilesToOpen = Application.GetOpenFilename _
        (FileFilter:="All files (*.*), *.*", _
        MultiSelect:=True, Title:="Files to Merge")
  
    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "Не выбрано ни одного файла!"
        Exit Sub
    End If
     
    'проходим по всем выбранным файлам
    For i = 1 To UBound(FilesToOpen)
        Set importWB = GetObject(FilesToOpen(i))
        If importWB.Name Like "*01.01.2020*" Then
            importWB.Windows(1).Visible = True
        Else
            importWB.Close False
        End If
    Next
End Sub
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Удаление макросом дубликатов из одного файла в другом
 
Попробуйте этот вариант.
Файлы должны находиться в одной папке, имена книг в макросе заданы "1" и "2".

Код
Sub DelDup()

    Dim i As Long
    Dim wsOne As Workbook
    Dim wsTwo As Workbook
    
    Dim f As Range
    
    Set wsOne = Application.Workbooks.Open((ThisWorkbook.Path & "\1.xlsx"))
    Set wsTwo = Application.Workbooks.Open((ThisWorkbook.Path & "\2.xlsx"))
        
    For i = 1 To wsOne.Worksheets(1).Cells.SpecialCells(xlCellTypeLastCell).Row
        Set f = wsOne.Worksheets(1).Columns(1).Find(wsTwo.Worksheets(1).Cells(i, 1).Value)
        If Not f Is Nothing Then
        wsTwo.Worksheets(1).Cells.Rows(i).Delete
        End If
    Next
    
    ThisWorkbook.Activate

    
End Sub
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Формат подписей в гистограмме
 
Можно просто повернуть например, или я что-то не учел? :)
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Автоматическая очистка ячеек при смене первоначального значения в многоуровневом списке
 
Можно реализовать с помощью событий рабочего листа (Worksheet Events).
Изменено: Valo - 20.03.2020 15:24:52
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Формирование данных для выпадающего списка по двум критериям
 
Ваш пример можно решить с помощью создания массива через функцию СМЕЩ.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Структурировать таблицу опросника терминальных ценостей, ответы пользователя по каждой цености - в одну строку
 
Попробуйте этот вариант
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Перенос заполненных ячеек
 
bybys,попробуйте вариант, который я предлагал ранее.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Структурировать таблицу опросника терминальных ценостей, ответы пользователя по каждой цености - в одну строку
 
Цитата
dimat&dtech написал:
вот такая ошибка по явилась
Какая?  :)  
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Перенос заполненных ячеек
 
Если без особых заморочек и начальные строки/столбцы постоянны, то можно так:
Код
Sub Toys()
    
    Dim wsToy As Worksheet      'Лист с игрушками
    Dim wsMain As Worksheet     'Лист с главной таблицей
    
    Dim i As Long               'Начальная строка в таблице игрушек
    Dim j As Long               'Начальная строка в общей таблице
    
    Set wsMain = ThisWorkbook.Worksheets("общая")
    
    j = 11
    
    'Очистка общей таблицы
    With wsMain
        .Range(.Rows(j + 1), .Rows(.Rows.Count)).Delete
    End With
    
    For Each wsToy In ThisWorkbook.Worksheets
        If wsToy.Name <> wsMain.Name Then
            i = 3
            Do While wsToy.Cells(i - 1, 2) <> ""
                If wsToy.Cells(i, 3) > 0 Then
                    wsMain.Cells(j, 2) = j - 10
                    wsMain.Cells(j, 3) = wsToy.Cells(i, 2)
                    wsMain.Cells(j, 4) = wsToy.Cells(i, 3)
                    wsMain.Cells(j, 5) = wsToy.Cells(i, 4)
                    wsMain.Cells(j, 6) = wsToy.Cells(i, 5)
                    j = j + 1
                End If
                i = i + 1
            Loop
        End If
    Next

    With wsMain
        .Range(Cells(11, 2), Cells(11, 6)).AutoFill Destination:=.Range(Cells(11, 2), Cells((j - 1), 6)), Type:=xlFillFormats
    End With
    
End Sub
Изменено: Valo - 18.03.2020 21:39:04
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
Страницы: 1 2 3 4 След.
Наверх