Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование строк по листам с условием - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Копирование строк по листам с условием
Grachev_Oleg Дата: Вторник, 09.07.2013, 11:23 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Всем привет! Есть такая задача. Ведется учёт по проживающим в вагон-городке рабочем. Все это ведется в Excel и хотелось бы упростить кое какую задачу. У меня имеется лист с названием "Общий" и листы "ВЫЕЗД", "УГСМ", "ЯМ". Так вот в общем листе ведется список Вагонов и сколько мест в в каждом вагоне, туда вбиваются данные по сотрудникам кто где проживает его дата заезда и дата выезда. Так вот хотелось бы сделать так что бы когда устанавливаешь "дату выезда", то данная строка проверяла от какой организации сотрудник и вставляла данного сотрудника в нужный лист! Если он от "УГСМ" то в лист "УГСМ", если "ЯМ то в лист "ЯМ". А в лист "ВЫЕЗД" попадали все сотрудники у кого стоит дата выезда. НО при этом надо, что бы после того как установилась дата выезда сотрудник скопирован и распределен по листам, то Сотрудника и всю строку по сотруднику удаляют из общего листа, а до этого скопированные данные были на своих местах. Помогите решить данную проблему. Пример файла выложил. Спасибо
К сообщению приложен файл: _New.xlsx (26.7 Kb)
 
Ответить
СообщениеВсем привет! Есть такая задача. Ведется учёт по проживающим в вагон-городке рабочем. Все это ведется в Excel и хотелось бы упростить кое какую задачу. У меня имеется лист с названием "Общий" и листы "ВЫЕЗД", "УГСМ", "ЯМ". Так вот в общем листе ведется список Вагонов и сколько мест в в каждом вагоне, туда вбиваются данные по сотрудникам кто где проживает его дата заезда и дата выезда. Так вот хотелось бы сделать так что бы когда устанавливаешь "дату выезда", то данная строка проверяла от какой организации сотрудник и вставляла данного сотрудника в нужный лист! Если он от "УГСМ" то в лист "УГСМ", если "ЯМ то в лист "ЯМ". А в лист "ВЫЕЗД" попадали все сотрудники у кого стоит дата выезда. НО при этом надо, что бы после того как установилась дата выезда сотрудник скопирован и распределен по листам, то Сотрудника и всю строку по сотруднику удаляют из общего листа, а до этого скопированные данные были на своих местах. Помогите решить данную проблему. Пример файла выложил. Спасибо

Автор - Grachev_Oleg
Дата добавления - 09.07.2013 в 11:23
Grachev_Oleg Дата: Вторник, 09.07.2013, 13:05 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Никто не хочет мне помочь. Может быть простая такая задача, но решения нигде не могу найти. Подскажите пожалуйста хотя бы куда смотреть.
 
Ответить
СообщениеНикто не хочет мне помочь. Может быть простая такая задача, но решения нигде не могу найти. Подскажите пожалуйста хотя бы куда смотреть.

Автор - Grachev_Oleg
Дата добавления - 09.07.2013 в 13:05
Serge_007 Дата: Вторник, 09.07.2013, 13:10 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Grachev_Oleg)
Никто не хочет мне помочь »
Стоит задуматься. Мне кажется что:
1. Вы ошиблись разделом (Формулы не могут ничего удалять или копировать)
2. Задача не ясна. Лично я несколько раз прочитал топик и желания кучу времени тратить на выяснения не обнаружил

Решать Вам


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Grachev_Oleg)
Никто не хочет мне помочь »
Стоит задуматься. Мне кажется что:
1. Вы ошиблись разделом (Формулы не могут ничего удалять или копировать)
2. Задача не ясна. Лично я несколько раз прочитал топик и желания кучу времени тратить на выяснения не обнаружил

Решать Вам

Автор - Serge_007
Дата добавления - 09.07.2013 в 13:10
Grachev_Oleg Дата: Вторник, 09.07.2013, 13:14 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Serge_007, Тогда куда мне направить данную тему. Что бы в правильное место. Подскажите пожалуйста.
 
Ответить
СообщениеSerge_007, Тогда куда мне направить данную тему. Что бы в правильное место. Подскажите пожалуйста.

Автор - Grachev_Oleg
Дата добавления - 09.07.2013 в 13:14
Grachev_Oleg Дата: Вторник, 09.07.2013, 13:16 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
И что тут не ясного я объяснил. Не пойму. Файл приложил. Объясните что не понятно Вам.
 
Ответить
СообщениеИ что тут не ясного я объяснил. Не пойму. Файл приложил. Объясните что не понятно Вам.

Автор - Grachev_Oleg
Дата добавления - 09.07.2013 в 13:16
Serge_007 Дата: Вторник, 09.07.2013, 13:18 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Grachev_Oleg)
куда мне направить данную тему »
Я перенёс

Цитата (Grachev_Oleg)
что тут не ясного я объяснил. Не пойму »
Я написал:
Цитата (Serge_007)
Мне кажется что: »
Может Вы всё хорошо объяснили, но если на другие вопросы отвечают, а на Ваш нет, то
Цитата (Serge_007)
Стоит задуматься. »


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Grachev_Oleg)
куда мне направить данную тему »
Я перенёс

Цитата (Grachev_Oleg)
что тут не ясного я объяснил. Не пойму »
Я написал:
Цитата (Serge_007)
Мне кажется что: »
Может Вы всё хорошо объяснили, но если на другие вопросы отвечают, а на Ваш нет, то
Цитата (Serge_007)
Стоит задуматься. »

Автор - Serge_007
Дата добавления - 09.07.2013 в 13:18
Grachev_Oleg Дата: Вторник, 09.07.2013, 13:23 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Serge_007, О чём задуматься? Не понимаю. Что мой вопрос не актуален или так легок в исполнении, что никто не может помочь и подсказать где посмотреть. Или я несу чушь задавая такой вопрос. Могли бы хоть чем то подсказать, а не говорить что я должен задуматься над чем то.
 
Ответить
СообщениеSerge_007, О чём задуматься? Не понимаю. Что мой вопрос не актуален или так легок в исполнении, что никто не может помочь и подсказать где посмотреть. Или я несу чушь задавая такой вопрос. Могли бы хоть чем то подсказать, а не говорить что я должен задуматься над чем то.

Автор - Grachev_Oleg
Дата добавления - 09.07.2013 в 13:23
Serge_007 Дата: Вторник, 09.07.2013, 13:26 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Grachev_Oleg)
Могли бы хоть чем то подсказать »
Если бы мог - подсказал бы. А так:
Цитата (Serge_007)
Задача не ясна. Лично я несколько раз прочитал топик и желания кучу времени тратить на выяснения не обнаружил »


Цитата (Grachev_Oleg)
О чём задуматься? »
Не знаю. Но если
Цитата (Grachev_Oleg)
Никто не хочет мне помочь. »
, то задуматься надо как минимум - ПОЧЕМУ? Вряд ли все сговорились не помогать отдельно взятому Олегу Грачёву, но помогать остальным. Я посоветовал подумать, а внимать совету или нет - дело Ваше


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Grachev_Oleg)
Могли бы хоть чем то подсказать »
Если бы мог - подсказал бы. А так:
Цитата (Serge_007)
Задача не ясна. Лично я несколько раз прочитал топик и желания кучу времени тратить на выяснения не обнаружил »


Цитата (Grachev_Oleg)
О чём задуматься? »
Не знаю. Но если
Цитата (Grachev_Oleg)
Никто не хочет мне помочь. »
, то задуматься надо как минимум - ПОЧЕМУ? Вряд ли все сговорились не помогать отдельно взятому Олегу Грачёву, но помогать остальным. Я посоветовал подумать, а внимать совету или нет - дело Ваше

Автор - Serge_007
Дата добавления - 09.07.2013 в 13:26
Grachev_Oleg Дата: Вторник, 09.07.2013, 13:34 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Ладно спасибо Вам за помощь конечно. Буду ждать, думаю может хоть найдется один человек, который захочет уделить немного времени моей проблеме и посмотрит, как реально это возможно сделать, а как нет.
 
Ответить
СообщениеЛадно спасибо Вам за помощь конечно. Буду ждать, думаю может хоть найдется один человек, который захочет уделить немного времени моей проблеме и посмотрит, как реально это возможно сделать, а как нет.

Автор - Grachev_Oleg
Дата добавления - 09.07.2013 в 13:34
Grachev_Oleg Дата: Вторник, 09.07.2013, 14:43 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Хочу сказать по своей теме. Сделал кнопку и макрос к ней по копированию на листы из условий, данный код нашел на другом сайте. Не могли бы вы мне помочь его переделать немного, по моим условиям. Сейчас она работает, но он копирует по несколько раз. Например: У меня стоит проверка по организации если "УГСМ" то лист "УГСМ" или если "ЯМ" то "ЯМ", и если я добавил сотрудника в список "общий" и я хочу опять автоматически раскинуть сотрудника в нужный лист, то у меня повторно все добавляются в список старые записи и уже получается список становится не верным, по мимо одного сотрудника, добавлены все остальные повторно. Как возможно сделать так, что бы если я ставлю напротив сотрудника "дату выезд", и нажимаю кнопку распределить по листам, то он проверяет из какой сотрудник организации (что она сейчас и делает) и проверяет стоит ли дата выезда. Если ячейка не пустая и стоит дата то скопировать данного сотрудника в нужный лист например "УГСМ". Помогите пожалуйста. Файл прикладываю. И еще хочу сказать у меня почему то не сохраняется код макроса, после закрытия он пропадает и нужно повторно его добавлять.

Код прикладываю:

[vba]
Код
Sub Вагон1()
Dim li As Long, lLastRow As Long, wsSh As Worksheet

With Sheets("Общий")
lLastRow = .Cells(Rows.Count, 3).End(xlUp).Row 'находим последнюю строку
On Error Resume Next
For li = 3 To lLastRow 'перебираем весь столбец по условию до последней строки
Set wsSh = Sheets(Trim(.Cells(li, 7).Value))
If Not wsSh Is Nothing Then
wsSh.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 4).Value = .Cells(li, 3).Resize(, 4).Value
End If
Set wsSh = Nothing
Next li
End With
End Sub
[/vba]
К сообщению приложен файл: 2711137.xlsx (25.8 Kb)
 
Ответить
СообщениеХочу сказать по своей теме. Сделал кнопку и макрос к ней по копированию на листы из условий, данный код нашел на другом сайте. Не могли бы вы мне помочь его переделать немного, по моим условиям. Сейчас она работает, но он копирует по несколько раз. Например: У меня стоит проверка по организации если "УГСМ" то лист "УГСМ" или если "ЯМ" то "ЯМ", и если я добавил сотрудника в список "общий" и я хочу опять автоматически раскинуть сотрудника в нужный лист, то у меня повторно все добавляются в список старые записи и уже получается список становится не верным, по мимо одного сотрудника, добавлены все остальные повторно. Как возможно сделать так, что бы если я ставлю напротив сотрудника "дату выезд", и нажимаю кнопку распределить по листам, то он проверяет из какой сотрудник организации (что она сейчас и делает) и проверяет стоит ли дата выезда. Если ячейка не пустая и стоит дата то скопировать данного сотрудника в нужный лист например "УГСМ". Помогите пожалуйста. Файл прикладываю. И еще хочу сказать у меня почему то не сохраняется код макроса, после закрытия он пропадает и нужно повторно его добавлять.

Код прикладываю:

[vba]
Код
Sub Вагон1()
Dim li As Long, lLastRow As Long, wsSh As Worksheet

With Sheets("Общий")
lLastRow = .Cells(Rows.Count, 3).End(xlUp).Row 'находим последнюю строку
On Error Resume Next
For li = 3 To lLastRow 'перебираем весь столбец по условию до последней строки
Set wsSh = Sheets(Trim(.Cells(li, 7).Value))
If Not wsSh Is Nothing Then
wsSh.Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 4).Value = .Cells(li, 3).Resize(, 4).Value
End If
Set wsSh = Nothing
Next li
End With
End Sub
[/vba]

Автор - Grachev_Oleg
Дата добавления - 09.07.2013 в 14:43
KuklP Дата: Вторник, 09.07.2013, 15:08 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Цитата (Grachev_Oleg)
у меня почему то не сохраняется код макроса, после закрытия он пропадает и нужно повторно его добавлять »
Потому что .xlsx это формат файлов без поддержки макросов(книжку бы какую почитали, что-ли, это же первый класс общеобразовательной школы). С макросами дружат форматы xls, xlsm, xlsb.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Цитата (Grachev_Oleg)
у меня почему то не сохраняется код макроса, после закрытия он пропадает и нужно повторно его добавлять »
Потому что .xlsx это формат файлов без поддержки макросов(книжку бы какую почитали, что-ли, это же первый класс общеобразовательной школы). С макросами дружат форматы xls, xlsm, xlsb.

Автор - KuklP
Дата добавления - 09.07.2013 в 15:08
Grachev_Oleg Дата: Вторник, 09.07.2013, 15:13 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
KuklP, Спасибо понял!
 
Ответить
СообщениеKuklP, Спасибо понял!

Автор - Grachev_Oleg
Дата добавления - 09.07.2013 в 15:13
M73568 Дата: Среда, 10.07.2013, 10:25 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 197
Репутация: 46 ±
Замечаний: 0% ±

2007-2013
Сводные таблицы вполне могут спасти "отца русской демократии" wink Вот только подход к хранению данных нужно поменять. Данные вносите во вкладке "Выезд" (название которой можно сменить), а оттуда уже через сводные можно вывести в любой форме с любыми фильтрами wink
К сообщению приложен файл: -New.xlsx (41.3 Kb)
 
Ответить
СообщениеСводные таблицы вполне могут спасти "отца русской демократии" wink Вот только подход к хранению данных нужно поменять. Данные вносите во вкладке "Выезд" (название которой можно сменить), а оттуда уже через сводные можно вывести в любой форме с любыми фильтрами wink

Автор - M73568
Дата добавления - 10.07.2013 в 10:25
Grachev_Oleg Дата: Четверг, 11.07.2013, 08:05 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
M73568, Здравствуйте! Посмотрел Ваш пример по моей теме. Выглядит все хорошо копируется все по нужным листам. Но нам это я думаю не подойдет, только потому, что я не пойму как отслеживать сколько в вагоне мест. В моей оригинальном примере, там стоят вагоны и места выделенные определенные поля куда можно вносить данные, только определенное количество. Так же у нас работа заключается как.

1. По прибытию человека в вагон-городок, просматривают шахматку и в свободное место вагона, вносят его данные, где указываются (Ф.И.О., Паспортные данные, ... Дата прибытия, Дата убытия) Так вот когда ставят дату убытия его нужно перенести в другой лист по фильтру организации, в моем случае "ЯМ" или "УГСМ" где уже подсчитывается сколько дней данный человек прожил.
После этого Строку по данному сотруднику удаляют из шахматки вагонов. т.е. остается пустое место, что свидетельствует о свободном месте в данном вагоне. И уже данные человека этого ни в коем случае не должны удалятся в скопированном листе.

А в этом случае все зависит от главного листа "ВЫЕЗД" откуда раскидываются данные по нужным листам и если данного человека удалить то он пропадет и на другом листе откуда он копируется. Если как то это можно обойти в вашем примере подскажите как это возможно. И так же отслеживание мест по вагонам, что бы можно было выбирать только определенное количество раз если 8 мест то 8 мест. Если все места забиты в вагоне и человек выехал, то как то освободить место.

Я думал сделать кнопку автоматического раскидывания людей по нужным местам. Выше в данной теме я привел код найденные по просторам интернета уже почти выполняющий данную функцию. Он копирует людей и выбирает их по организациям в нужные листы, НО он работает сейчас как. Если нажать на кнопку один раз он все копирует что надо и все вроде бы отлично, но если нажать еще раз он скопирует те же поля но только ниже дополняя список. Поэтому хотелось бы его немного переработать, что бы он работал правильно. Сам с VBA никогда не сталкивался.

Про код. Хотелось бы сделать что бы при нажатии на кнопку, он сверил данные с листов по столбцу Ф.И.О. и если попадается такой человек то он перезаписывает его данные, если не находит, то ниже уже списка копирует данные не нашедшие в списке.

Тогда я думаю проблемы себя исчерпают, так как в принципе с остальным введением учета проживающих труда не составляет. Код который уже работает в принципе можно взять выше я его приводил. Я думаю туда нужно добавить какой то цикл на проверку данных и уже после выполнение всех остальных действий. Если вы сильны в написание кода на VBA, помогите пожалуйста переделать код как я описал выше.

[i]
 
Ответить
СообщениеM73568, Здравствуйте! Посмотрел Ваш пример по моей теме. Выглядит все хорошо копируется все по нужным листам. Но нам это я думаю не подойдет, только потому, что я не пойму как отслеживать сколько в вагоне мест. В моей оригинальном примере, там стоят вагоны и места выделенные определенные поля куда можно вносить данные, только определенное количество. Так же у нас работа заключается как.

1. По прибытию человека в вагон-городок, просматривают шахматку и в свободное место вагона, вносят его данные, где указываются (Ф.И.О., Паспортные данные, ... Дата прибытия, Дата убытия) Так вот когда ставят дату убытия его нужно перенести в другой лист по фильтру организации, в моем случае "ЯМ" или "УГСМ" где уже подсчитывается сколько дней данный человек прожил.
После этого Строку по данному сотруднику удаляют из шахматки вагонов. т.е. остается пустое место, что свидетельствует о свободном месте в данном вагоне. И уже данные человека этого ни в коем случае не должны удалятся в скопированном листе.

А в этом случае все зависит от главного листа "ВЫЕЗД" откуда раскидываются данные по нужным листам и если данного человека удалить то он пропадет и на другом листе откуда он копируется. Если как то это можно обойти в вашем примере подскажите как это возможно. И так же отслеживание мест по вагонам, что бы можно было выбирать только определенное количество раз если 8 мест то 8 мест. Если все места забиты в вагоне и человек выехал, то как то освободить место.

Я думал сделать кнопку автоматического раскидывания людей по нужным местам. Выше в данной теме я привел код найденные по просторам интернета уже почти выполняющий данную функцию. Он копирует людей и выбирает их по организациям в нужные листы, НО он работает сейчас как. Если нажать на кнопку один раз он все копирует что надо и все вроде бы отлично, но если нажать еще раз он скопирует те же поля но только ниже дополняя список. Поэтому хотелось бы его немного переработать, что бы он работал правильно. Сам с VBA никогда не сталкивался.

Про код. Хотелось бы сделать что бы при нажатии на кнопку, он сверил данные с листов по столбцу Ф.И.О. и если попадается такой человек то он перезаписывает его данные, если не находит, то ниже уже списка копирует данные не нашедшие в списке.

Тогда я думаю проблемы себя исчерпают, так как в принципе с остальным введением учета проживающих труда не составляет. Код который уже работает в принципе можно взять выше я его приводил. Я думаю туда нужно добавить какой то цикл на проверку данных и уже после выполнение всех остальных действий. Если вы сильны в написание кода на VBA, помогите пожалуйста переделать код как я описал выше.

[i]

Автор - Grachev_Oleg
Дата добавления - 11.07.2013 в 08:05
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!