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

Страницы: 1
Автоматически подтягивать стоимость на второй лист, при изменении на главном.
 
Есть такой документ, на "главном " листе необходимо притянуть столбец "нужные данные" на лист "второй". Сначала реализовал с помощью функции ПРОСМОТР для одного столбца, но в документе будет больше 10 000 строк и работает это очень долго для 1 столбца, а для всех я уже молчу. Теперь хочу попытаться реализовать с помощью "Индекса и поиск позиции" (по средство макроса разумеется в виде кнопки).
Это старая реализация.
Как лучше подойти ?

Код
Sub Макрос1()

    Application.ScreenUpdating = False 'Отключаем обновление экрана
    Sheets("главный").Select
    
    'Получаем кол-во заполененных строк'
    Dim LastRow As Long, i As Long
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 11 To LastRow
        If Cells(i, 11).Value = "" Then Exit For
    Next
    
    'Заполенение 1 столбца'
    Sheets("второй").Select
        For i = 11 To LastRow
            Cells(i - 5, 5).Formula = "=LOOKUP(2,1/(($A" & i - 5 & "=главный!$A" & i & ":$A$" & LastRow & ")*($B" & i - 5 & "=главный!$B" & i & ":$B" & LastRow & ")*($C" & i - 5 & "=главный!$C" & i & ":$C" & LastRow & ")*($D" & i - 5 & "=главный!$D" & i & ":$D" & LastRow & ")),главный!$E" & i & ":$E" & LastRow & ")"
Код
If Cells(i - 5, 5) = 0 Then
Cells(i - 5, 5).Value = ""
End If
Next i
Application.ScreenUpdating = True

End Sub
Изменено: proga19 - 22.12.2017 13:39:56
Написание формулы в цикле, Подставить в формулу переменную
 
Доброго утречка. Есть такая формула:
Код
=ПРОСМОТР(2;1/(($A6=нормы!$A$11:$A$10399)*($B6=нормы!$B$11:$B$10399)*($C6=нормы!$C$11:$C$10399)*($D6=нормы!$D$11:$D$10399));нормы!$E$11:$E$10399)
Но не суть, хочу чтобы она выполнялась в макросе, пишу цикл:
Код
Sub Macros()

Dim LastRow As Long, CountString As Long
   LastRow = Cells(Rows.Count, 1).End(xlUp).Row' определяем кол-во строк в нашему диапазоне (непустых)
    For CountString = 11 To LastRow
        If Cells(CountString, 11).Value = "" Then Exit For
    Next

    For i = CountString To LastRow
         Range(i, 5).Formula = "=Просмотр(2;1/(($A(i-6)=нормы!$A$11:$A$10399)*($B(i-6)=нормы!$B$11:$B$10399)*($C(i-6)=нормы!$C$11:$C$10399)*($D(i-6)=нормы!$D$11:$D$10399));нормы!$E$11:$E$10399)"

Как в формулу передать i?
Спасибо
Изменено: proga19 - 22.12.2017 07:30:23
Найти в массиве значение по параметрам и копировать
 
Доброго времени суток "Мозгеры"! Прошу помочь с решением данной задачи:
Есть 2 листа, на одном записана информация о изделиях, норме времени и премии. Во втором тоже самое только без столбца премия.
Необходимо написать макрос, который бы ( сделаю кнопку) искал изделие по параметрам ( типоразмер, S ) и копировал для каждого такого изделия норму времени в лист "Норма времени".
Для наглядности прикладываю пример:
Спасибо.

А вообще так подумал, можно сделать проще, просто скопировать, но как это будет выглядеть пока не понимаю
Изменено: proga19 - 21.12.2017 18:36:02
Как скопировать диапазон в столбце до последней заполненной ячейки?
 
Доброе утро всем. Начинаю осваивать VBA. Назрел вопрос:
Нужно скопировать столбец ячеек начиная с ячейки J174 (до первой пустой ячейки) и вставить его например в W174.
Не могу понять как мне пройти по этому столбцу начиная с нужной ячейки и до конца, т.к записей может быть 2, а может и 1000, пытаюсь реализовать это посредством макроса.
Спасибо..
Изменено: proga19 - 06.12.2017 07:37:29
Страницы: 1
Наверх