Всем привет! Есть такая задача. Ведется учёт по проживающим в вагон-городке рабочем. Все это ведется в Excel и хотелось бы упростить кое какую задачу. У меня имеется лист с названием "Общий" и листы "ВЫЕЗД", "УГСМ", "ЯМ". Так вот в общем листе ведется список Вагонов и сколько мест в в каждом вагоне, туда вбиваются данные по сотрудникам кто где проживает его дата заезда и дата выезда. Так вот хотелось бы сделать так что бы когда устанавливаешь "дату выезда", то данная строка проверяла от какой организации сотрудник и вставляла данного сотрудника в нужный лист! Если он от "УГСМ" то в лист "УГСМ", если "ЯМ то в лист "ЯМ". А в лист "ВЫЕЗД" попадали все сотрудники у кого стоит дата выезда. НО при этом надо, что бы после того как установилась дата выезда сотрудник скопирован и распределен по листам, то Сотрудника и всю строку по сотруднику удаляют из общего листа, а до этого скопированные данные были на своих местах. Помогите решить данную проблему. Пример файла выложил. Спасибо
Всем привет! Есть такая задача. Ведется учёт по проживающим в вагон-городке рабочем. Все это ведется в Excel и хотелось бы упростить кое какую задачу. У меня имеется лист с названием "Общий" и листы "ВЫЕЗД", "УГСМ", "ЯМ". Так вот в общем листе ведется список Вагонов и сколько мест в в каждом вагоне, туда вбиваются данные по сотрудникам кто где проживает его дата заезда и дата выезда. Так вот хотелось бы сделать так что бы когда устанавливаешь "дату выезда", то данная строка проверяла от какой организации сотрудник и вставляла данного сотрудника в нужный лист! Если он от "УГСМ" то в лист "УГСМ", если "ЯМ то в лист "ЯМ". А в лист "ВЫЕЗД" попадали все сотрудники у кого стоит дата выезда. НО при этом надо, что бы после того как установилась дата выезда сотрудник скопирован и распределен по листам, то Сотрудника и всю строку по сотруднику удаляют из общего листа, а до этого скопированные данные были на своих местах. Помогите решить данную проблему. Пример файла выложил. СпасибоGrachev_Oleg
Стоит задуматься. Мне кажется что: 1. Вы ошиблись разделом (Формулы не могут ничего удалять или копировать) 2. Задача не ясна. Лично я несколько раз прочитал топик и желания кучу времени тратить на выяснения не обнаружил
Стоит задуматься. Мне кажется что: 1. Вы ошиблись разделом (Формулы не могут ничего удалять или копировать) 2. Задача не ясна. Лично я несколько раз прочитал топик и желания кучу времени тратить на выяснения не обнаружил
Serge_007, О чём задуматься? Не понимаю. Что мой вопрос не актуален или так легок в исполнении, что никто не может помочь и подсказать где посмотреть. Или я несу чушь задавая такой вопрос. Могли бы хоть чем то подсказать, а не говорить что я должен задуматься над чем то.
Serge_007, О чём задуматься? Не понимаю. Что мой вопрос не актуален или так легок в исполнении, что никто не может помочь и подсказать где посмотреть. Или я несу чушь задавая такой вопрос. Могли бы хоть чем то подсказать, а не говорить что я должен задуматься над чем то.Grachev_Oleg
, то задуматься надо как минимум - ПОЧЕМУ? Вряд ли все сговорились не помогать отдельно взятому Олегу Грачёву, но помогать остальным. Я посоветовал подумать, а внимать совету или нет - дело Ваше
, то задуматься надо как минимум - ПОЧЕМУ? Вряд ли все сговорились не помогать отдельно взятому Олегу Грачёву, но помогать остальным. Я посоветовал подумать, а внимать совету или нет - дело ВашеSerge_007
Ладно спасибо Вам за помощь конечно. Буду ждать, думаю может хоть найдется один человек, который захочет уделить немного времени моей проблеме и посмотрит, как реально это возможно сделать, а как нет.
Ладно спасибо Вам за помощь конечно. Буду ждать, думаю может хоть найдется один человек, который захочет уделить немного времени моей проблеме и посмотрит, как реально это возможно сделать, а как нет.Grachev_Oleg
Хочу сказать по своей теме. Сделал кнопку и макрос к ней по копированию на листы из условий, данный код нашел на другом сайте. Не могли бы вы мне помочь его переделать немного, по моим условиям. Сейчас она работает, но он копирует по несколько раз. Например: У меня стоит проверка по организации если "УГСМ" то лист "УГСМ" или если "ЯМ" то "ЯМ", и если я добавил сотрудника в список "общий" и я хочу опять автоматически раскинуть сотрудника в нужный лист, то у меня повторно все добавляются в список старые записи и уже получается список становится не верным, по мимо одного сотрудника, добавлены все остальные повторно. Как возможно сделать так, что бы если я ставлю напротив сотрудника "дату выезд", и нажимаю кнопку распределить по листам, то он проверяет из какой сотрудник организации (что она сейчас и делает) и проверяет стоит ли дата выезда. Если ячейка не пустая и стоит дата то скопировать данного сотрудника в нужный лист например "УГСМ". Помогите пожалуйста. Файл прикладываю. И еще хочу сказать у меня почему то не сохраняется код макроса, после закрытия он пропадает и нужно повторно его добавлять.
Код прикладываю:
[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]
Хочу сказать по своей теме. Сделал кнопку и макрос к ней по копированию на листы из условий, данный код нашел на другом сайте. Не могли бы вы мне помочь его переделать немного, по моим условиям. Сейчас она работает, но он копирует по несколько раз. Например: У меня стоит проверка по организации если "УГСМ" то лист "УГСМ" или если "ЯМ" то "ЯМ", и если я добавил сотрудника в список "общий" и я хочу опять автоматически раскинуть сотрудника в нужный лист, то у меня повторно все добавляются в список старые записи и уже получается список становится не верным, по мимо одного сотрудника, добавлены все остальные повторно. Как возможно сделать так, что бы если я ставлю напротив сотрудника "дату выезд", и нажимаю кнопку распределить по листам, то он проверяет из какой сотрудник организации (что она сейчас и делает) и проверяет стоит ли дата выезда. Если ячейка не пустая и стоит дата то скопировать данного сотрудника в нужный лист например "УГСМ". Помогите пожалуйста. Файл прикладываю. И еще хочу сказать у меня почему то не сохраняется код макроса, после закрытия он пропадает и нужно повторно его добавлять.
Код прикладываю:
[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
у меня почему то не сохраняется код макроса, после закрытия он пропадает и нужно повторно его добавлять »
Потому что .xlsx это формат файлов без поддержки макросов(книжку бы какую почитали, что-ли, это же первый класс общеобразовательной школы). С макросами дружат форматы xls, xlsm, xlsb.
Цитата (Grachev_Oleg)
у меня почему то не сохраняется код макроса, после закрытия он пропадает и нужно повторно его добавлять »
Потому что .xlsx это формат файлов без поддержки макросов(книжку бы какую почитали, что-ли, это же первый класс общеобразовательной школы). С макросами дружат форматы xls, xlsm, xlsb.KuklP
Ну с НДС и мы чего-то стoим! kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728
Сводные таблицы вполне могут спасти "отца русской демократии" Вот только подход к хранению данных нужно поменять. Данные вносите во вкладке "Выезд" (название которой можно сменить), а оттуда уже через сводные можно вывести в любой форме с любыми фильтрами
Сводные таблицы вполне могут спасти "отца русской демократии" Вот только подход к хранению данных нужно поменять. Данные вносите во вкладке "Выезд" (название которой можно сменить), а оттуда уже через сводные можно вывести в любой форме с любыми фильтрами M73568
M73568, Здравствуйте! Посмотрел Ваш пример по моей теме. Выглядит все хорошо копируется все по нужным листам. Но нам это я думаю не подойдет, только потому, что я не пойму как отслеживать сколько в вагоне мест. В моей оригинальном примере, там стоят вагоны и места выделенные определенные поля куда можно вносить данные, только определенное количество. Так же у нас работа заключается как.
1. По прибытию человека в вагон-городок, просматривают шахматку и в свободное место вагона, вносят его данные, где указываются (Ф.И.О., Паспортные данные, ... Дата прибытия, Дата убытия) Так вот когда ставят дату убытия его нужно перенести в другой лист по фильтру организации, в моем случае "ЯМ" или "УГСМ" где уже подсчитывается сколько дней данный человек прожил. После этого Строку по данному сотруднику удаляют из шахматки вагонов. т.е. остается пустое место, что свидетельствует о свободном месте в данном вагоне. И уже данные человека этого ни в коем случае не должны удалятся в скопированном листе.
А в этом случае все зависит от главного листа "ВЫЕЗД" откуда раскидываются данные по нужным листам и если данного человека удалить то он пропадет и на другом листе откуда он копируется. Если как то это можно обойти в вашем примере подскажите как это возможно. И так же отслеживание мест по вагонам, что бы можно было выбирать только определенное количество раз если 8 мест то 8 мест. Если все места забиты в вагоне и человек выехал, то как то освободить место.
Я думал сделать кнопку автоматического раскидывания людей по нужным местам. Выше в данной теме я привел код найденные по просторам интернета уже почти выполняющий данную функцию. Он копирует людей и выбирает их по организациям в нужные листы, НО он работает сейчас как. Если нажать на кнопку один раз он все копирует что надо и все вроде бы отлично, но если нажать еще раз он скопирует те же поля но только ниже дополняя список. Поэтому хотелось бы его немного переработать, что бы он работал правильно. Сам с VBA никогда не сталкивался.
Про код. Хотелось бы сделать что бы при нажатии на кнопку, он сверил данные с листов по столбцу Ф.И.О. и если попадается такой человек то он перезаписывает его данные, если не находит, то ниже уже списка копирует данные не нашедшие в списке.
Тогда я думаю проблемы себя исчерпают, так как в принципе с остальным введением учета проживающих труда не составляет. Код который уже работает в принципе можно взять выше я его приводил. Я думаю туда нужно добавить какой то цикл на проверку данных и уже после выполнение всех остальных действий. Если вы сильны в написание кода на VBA, помогите пожалуйста переделать код как я описал выше.
[i]
M73568, Здравствуйте! Посмотрел Ваш пример по моей теме. Выглядит все хорошо копируется все по нужным листам. Но нам это я думаю не подойдет, только потому, что я не пойму как отслеживать сколько в вагоне мест. В моей оригинальном примере, там стоят вагоны и места выделенные определенные поля куда можно вносить данные, только определенное количество. Так же у нас работа заключается как.
1. По прибытию человека в вагон-городок, просматривают шахматку и в свободное место вагона, вносят его данные, где указываются (Ф.И.О., Паспортные данные, ... Дата прибытия, Дата убытия) Так вот когда ставят дату убытия его нужно перенести в другой лист по фильтру организации, в моем случае "ЯМ" или "УГСМ" где уже подсчитывается сколько дней данный человек прожил. После этого Строку по данному сотруднику удаляют из шахматки вагонов. т.е. остается пустое место, что свидетельствует о свободном месте в данном вагоне. И уже данные человека этого ни в коем случае не должны удалятся в скопированном листе.
А в этом случае все зависит от главного листа "ВЫЕЗД" откуда раскидываются данные по нужным листам и если данного человека удалить то он пропадет и на другом листе откуда он копируется. Если как то это можно обойти в вашем примере подскажите как это возможно. И так же отслеживание мест по вагонам, что бы можно было выбирать только определенное количество раз если 8 мест то 8 мест. Если все места забиты в вагоне и человек выехал, то как то освободить место.
Я думал сделать кнопку автоматического раскидывания людей по нужным местам. Выше в данной теме я привел код найденные по просторам интернета уже почти выполняющий данную функцию. Он копирует людей и выбирает их по организациям в нужные листы, НО он работает сейчас как. Если нажать на кнопку один раз он все копирует что надо и все вроде бы отлично, но если нажать еще раз он скопирует те же поля но только ниже дополняя список. Поэтому хотелось бы его немного переработать, что бы он работал правильно. Сам с VBA никогда не сталкивался.
Про код. Хотелось бы сделать что бы при нажатии на кнопку, он сверил данные с листов по столбцу Ф.И.О. и если попадается такой человек то он перезаписывает его данные, если не находит, то ниже уже списка копирует данные не нашедшие в списке.
Тогда я думаю проблемы себя исчерпают, так как в принципе с остальным введением учета проживающих труда не составляет. Код который уже работает в принципе можно взять выше я его приводил. Я думаю туда нужно добавить какой то цикл на проверку данных и уже после выполнение всех остальных действий. Если вы сильны в написание кода на VBA, помогите пожалуйста переделать код как я описал выше.