Страницы: 1
RSS
Перенос данных в определенную таблицу
 
Добрый день, мне нужно реализовать следующую схему. Буду благодарен за помощь.
Есть таблица - в ней несколько вкладок - основная - лист 1 - лист 2 и т.д.
Нужно автоматически переносить данные из основной таблицы в дополнительные в зависимости от условий.
Например, если было выбрано значение "передан" и "лист 1", то перенести в лист 1 всю строку с информацией кроме ячейки с условием.

Для примера добавлю файл.
 
Alex2323, в исходной таблице эти данные стоит стереть ?  
Кажется все забыли про сводные :)
 
арех, нет, оставить.
 
Код
Sub Alex2323()
Dim i&, lstr&
Application.ScreenUpdating = False
lstr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lstr
If Cells(i, 2) = "передан" Then
    Cells(i, 1).Offset(, 1).Resize(, 7).Copy
    Sheets(Right(Cells(i, 1), 1) + 1).Activate
    Range("A2").Activate
    ActiveSheet.Paste
Application.CutCopyMode = False
Sheets(1).Activate
End If
Next
Application.ScreenUpdating = True
End Sub
Изменено: Владимир - 31.08.2016 08:42:39 (Поправил)
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, спасибо. Буду искать как и куда писать код.
 
Владимир, вроде работает, только не совсем корректно, при запуске макроса, данные копируются в нужные вкладки, но не обновляются, а просто добавляются в новую строку. Получается если запустить макрос 3 раза, то появится 3 строчки с одинаковыми данными. А нужно, что бы строка была заменена если в нее были внесены изменения.  
Изменено: Alex2323 - 30.08.2016 18:50:14
 
Макрос в посте №4 поправил.
Но вопрос возник, а если на один и тот же лист нужно переносить более одной строки?  
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Там ситуация следующая, в основном листе записываются все поступившие заказы (1 заказ - 1 строка), на дополнительные листы, копируются только заказы которые подходят по критериям. Количество копируемых строк, зависит от того когда менеджер запустит макрос - после каждого поступившего заказа или в конце рабочего дня.
В дополнительных листах, данные должны полностью соответствовать тем которые записываются в основном листе и например, если через какое- нибудь время данные заказа были отредактированы в основном листе, то эти изменения должны обновится и в дополнительном, и если запись была удалена, то ее следует удалить и с дополнительного листа.

Заменил код на новый, работает некорректно. Во втором листе появляется 7 одинаковых строк, в первом - 2, остальные строки которые отмечены "передан" вообще не копируются.
Изменено: Alex2323 - 31.08.2016 16:25:12
 
Цитата
Alex2323 написал:
Заменил код на новый, работает некорректно. Во втором листе появляется 7 одинаковых строк, в первом - 2, остальные строки которые отмечены "передан" вообще не копируются.
Видимо ошибся где-нибудь, уже работает.

Цитата
Владимир написал:
Но вопрос возник, а если на один и тот же лист нужно переносить более одной строки?
Да, нужно переносить любое количество строк и обновлять уже имеющиеся, чтобы все было как в основном листе без ошибок.
 
Код
Sub Alex2323()
Dim i&, lstr&, k&
Application.ScreenUpdating = False
k = Sheets.Count
For i = 2 To k
    Sheets(i).Activate
    [A2].Select
    Range([A2], ActiveCell.SpecialCells(xlLastCell)).ClearContents
Next
Sheets(1).Activate
lstr = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lstr
If Cells(i, 2) = "передан" Then
    Cells(i, 1).Offset(, 1).Resize(, 7).Copy
    Sheets(Right(Cells(i, 1), 1) + 1).Activate
    lstr = Cells(Rows.Count, 1).End(xlUp).Row
    Cells(lstr + 1, 1).Activate
    ActiveSheet.Paste
Application.CutCopyMode = False
Sheets(1).Activate
End If
Next
Application.ScreenUpdating = True
End Sub
Перед началом работы макрос будет очищать дополнительные листы и вставлять столько строк, сколько нужно.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, спасибо, очень помогли! а подскажите, как поставить условие, вместо слова "передан" искать все значения кроме, например, слов "новый" и "отмененный"?
И также интересует как исключить нужные листы, например 2, 7 и 8 по счету из работы скрипта, чтобы они не обновлялись вместе со всеми, там совсем другие данные.  
Изменено: Alex2323 - 31.08.2016 19:07:17
 
Тестируйте.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, сегодня все сделал под себя, все работает, спасибо.
Только при удалении заказа в дополнительном листе, ячейки очищаются только от текста, а цвет, списки и формулы остаются.
 
Цитата
Alex2323 написал:
а цвет, списки и формулы остаются
Вместо .ClearContents используйте .Clear
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, спасибо.
Изменено: Alex2323 - 04.09.2016 22:34:06
Страницы: 1
Наверх