|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.02.2016, 03:28 | #1 |
Новичок
Джуниор
Регистрация: 12.02.2016
Сообщений: 1
|
Копирование строк в разные листы книги по значению ячейки в столбце
Здравствуйте,
Есть таблица, где в Лист1 ведется учет хранения одного вида продукции разными клиентами, нужно, чтобы при вводе в колонку "Контрагент" (D), вся строка (27 ячеек), не зависимо от того, все ли ячейки заполнены, переносилась на лист данного клиента в последнюю незаполненную строку. То есть вводим id товара, место хранения, дату поступления, кем принят и т.д. (остаются свободны ячейки с датой выдачи, кому выдан и т.д), вводим наименование клиента (Клиент1) - строка перенеслась в Лист2 данного клиента на последнюю строку, вводим Клиент2 - строка переноситься в Лист3 на последнюю незаполненную строку. В случае редактирования строки (внесения даты выдачи, кому выдан, удаления места хранения), изменения и вступают в силу на листе клиента. Нашел только такое решение: Private Sub Worksheet_Change(ByVal Target As Range) Dim LastRow As Long If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("D:D")) Is Nothing Then If Target = "Клиент1" Then With Sheets("Лист2") LastRow = Cells(Rows.Count, 1).End(xlUp).Row If Application.WorksheetFunction.Count A(Range(Cells(Target.Row, 1), Cells(Target.Row, 27))) = 27 Then Range(Cells(Target.Row, 1), Cells(Target.Row, 27)).Copy .Cells(LastRow + 1, 1).PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End If End With End If End If If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("D:D")) Is Nothing Then If Target = "Клиент2" Then With Sheets("Лист3") LastRow = Cells(Rows.Count, 1).End(xlUp).Row If Application.WorksheetFunction.Count A(Range(Cells(Target.Row, 1), Cells(Target.Row, 27))) = 27 Then Range(Cells(Target.Row, 1), Cells(Target.Row, 27)).Copy .Cells(LastRow + 1, 1).PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End If End With End If End If End Sub Но добавляет по примеру: Лист1, 1 строка Клиент1 - переносит в Лист2 в стоку 1 Лист1, 2 строка Клиент2 - переносит в Лист3 в стоку 2 То есть в Лист3 первая строка остается пустой. Подскажите пожалуйста решение, без Вас никогда не справиться с этой задачей. |
12.02.2016, 09:00 | #2 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
1. отформатируй код согласно правил
2. приложи какие-то файлы с разработками
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
12.02.2016, 09:33 | #3 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
дайте листам такие же имена как у контрагентов
тогда вместо того, что написано у Вас можно использовать этот Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Добавление строк с формулами в однотипные листы книги | AlWin | Microsoft Office Excel | 2 | 19.11.2012 15:35 |
Копирование строки по значению в столбце | maxpay | Microsoft Office Excel | 0 | 10.11.2012 18:49 |
Автоматичекое копирование/удаление строк по значению в столбце | maxpay | Microsoft Office Excel | 1 | 10.11.2012 09:21 |
Копирование строк по условию в разные листы | korsarqa | Microsoft Office Excel | 2 | 23.06.2012 20:51 |
Нахождение в столбце с числами строк, сумма чисел которых равна определенному значению | KNatalia | Microsoft Office Excel | 2 | 16.09.2009 08:42 |