Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 17
1

Копирование данных на другой лист при условии определенных данных

07.12.2015, 13:05. Показов 2130. Ответов 18
Метки нет (Все метки)

Добрый день! Нужна помощь чайнику при формировании картотеки сотрудников. Есть общая база данных , нужно , чтобы ячейки с данными сотрудника автоматически копировались на другой лист с соответствующей фамилией.Заранее спасибо за помощь.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Вложения
Тип файла: xlsx сборка.xlsx (15.2 Кб, 12 просмотров)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2015, 13:05
Ответы с готовыми решениями:

Копирование данных с листа 1 на лист 3 при условии в лист 2
Помогите пожалуйста пересмотрел примеры решения на форуме. но не могу найти нужное. есть 3...

Копирование данных на другой лист по условию
Добрый день, уважаемые форумчане. Прошу помощи в решении следующего вопроса: Есть файл (во...

Перенос и копирование данных на другой лист
И снова здравствуйте! Появился новый вопрос по поводу переноса данных, а если быть точнее...

Копирование данных из разных ячеек одного листа на другой лист
Ребят, доброго всем вечера. Требуется помощь. VBA в рамках предмета под названием "информатика",...

18
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
4449 / 2279 / 132
Регистрация: 27.06.2011
Сообщений: 9,050
07.12.2015, 13:27 2
ольгароманенко, а что в нужной ячейки поставить одна ячейка = другой?
0
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 17
07.12.2015, 13:31  [ТС] 3
Нужно , чтобы все только данные н-р по сотруднику Пиксаеву копировались на лист Пиксаев, а н-р данные по Кривошееву копировались в Лист Кривошеев. Сотрудников около 20.
0
132 / 108 / 22
Регистрация: 23.06.2015
Сообщений: 339
07.12.2015, 14:11 4
Лучший ответ Сообщение было отмечено ольгароманенко как решение

Решение

добрый день,протестируйте макрос,кнопка yyy,только для одного сотрудника и соответствующего ему листа ,можно обобщить сразу для всех... или
действовать по аналогии,заменяя в тексте макроса фамилию и добавляя лист с очередной фамилией.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub yyy()
    Dim z(), i&, i1&, j&, m&
    i1 = Range("A" & Rows.Count).End(xlUp).Row
    z = Sheets("Общая").Range("A2:P" & i1).Value
   For j = 1 To UBound(z, 2): z(1, j) = z(1, j): m = 1: Next
    For i = 2 To UBound(z)
         If z(i, 1) = "Пиксаев" Then
         m = m + 1: For j = 1 To UBound(z, 2): z(m, j) = z(i, j): Next
         End If
   Next
  Sheets("Пиксаев").Range("A1").Resize(m, UBound(z, 2)).Value = z
  Sheets("Пиксаев").Columns("A:P").AutoFit
End Sub
0
132 / 108 / 22
Регистрация: 23.06.2015
Сообщений: 339
07.12.2015, 14:14 5
добавлю,файл не прикрепил,добавляю
0
Вложения
Тип файла: xls сборка_7_12_2015_cbr.xls (51.5 Кб, 14 просмотров)
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 17
07.12.2015, 14:22  [ТС] 6
Большое Вам человеческое спасибо!!!
0
771 / 614 / 294
Регистрация: 05.01.2014
Сообщений: 1,338
07.12.2015, 14:25 7
Вариант формулами, с доп. столбцом. Доп. столбец при желании можно скрыть.
0
Вложения
Тип файла: xlsx сборка_1.xlsx (21.4 Кб, 10 просмотров)
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 17
07.12.2015, 17:57  [ТС] 8
Вы супер!!! Огромное спасибо!!! Все работает!
0
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 17
07.12.2015, 22:10  [ТС] 9
О, я не чайник, я лузер!!! Как я не билась, не смогла добавить в макрос ничего больше, чем было отправлено мне Великими Волшебниками, которые владеют тайнами Программирования. Подскажите, пжл, как мне добавить других сотрудников в макрос, чтобы данные и по ним копировались на лист с соответствующей фамилией. Слезно прошу помощи!!!! Добавьте еще одного, думаю дальше разберусь. Спасибо заранее Всем за помощь! Файл высланный мне ранее прикрепляю
0
Вложения
Тип файла: xls сборка_7_12_2015_cbr.xls (51.5 Кб, 6 просмотров)
132 / 108 / 22
Регистрация: 23.06.2015
Сообщений: 339
07.12.2015, 23:11 10
Лучший ответ Сообщение было отмечено ольгароманенко как решение

Решение

добрый вечер,ольгароманенко,добавил еще кнопку yyy1(синяя) на листе Общая ,для еще одного сотрудника Красовенко,чтобы протестировать надо,например, очистить лист Красовенко ,для этого нового
сотрудника и нажать кнопку yyy1.
(может Вам сделать макрос для любого количества сотрудников...)

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub yyy1()
    Dim z(), i&, i1&, j&, m&
    i1 = Range("A" & Rows.Count).End(xlUp).Row
    z = Sheets("Общая").Range("A2:P" & i1).Value
   For j = 1 To UBound(z, 2): z(1, j) = z(1, j): m = 1: Next
    For i = 2 To UBound(z)
         If z(i, 1) = "Красовенко" Then
         m = m + 1: For j = 1 To UBound(z, 2): z(m, j) = z(i, j): Next
         End If
   Next
  Sheets("Красовенко").Range("A1").Resize(m, UBound(z, 2)).Value = z
  Sheets("Красовенко").Columns("A:P").AutoFit
End Sub
1
Вложения
Тип файла: xls сборка_7_12_2015_cbr_2.xls (59.5 Кб, 7 просмотров)
0 / 0 / 0
Регистрация: 03.12.2015
Сообщений: 5
07.12.2015, 23:26 11
Здравствуйте! У меня схожая ситуация.

В таблице вручную выделяется строка и помечается красным цветом шрифта если есть вопросы к объекту + автоматически заливается поле ячейки красным если есть дублирование в полях "пультовой номер" и номера сим+пон. Необходимо на другой лист в такую же по виду таблицу дублировать эти строчки "онлайн". Набор строчек будет меняться + будут добавляться новые строчки в основную таблицу. Но это еще не все После того, как во второй таблице изменили условия на нормальные, то есть шрифт строки не красный, нет дублей полей, эта строчка должна из нее исчезнуть (и поменять свой вид в основной таблице соответственно)

Фильтром основной таблицы проблему не решить, так как пользоваться будут люди, которых устраивает только такой вариант.


Если что-то получится, буду очень благодарен.
Заранее, спасибо!
0
Вложения
Тип файла: rar Книга1.rar (21.2 Кб, 3 просмотров)
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 17
08.12.2015, 00:05  [ТС] 12
Очень признательна за помощь! Спасли меня от позора!!! Если не трудно , сделайте , пожалуйста. Сколько я должна за помощь ? С глубочайшим восхищением к Вашем знаниям . Ольга
0
132 / 108 / 22
Регистрация: 23.06.2015
Сообщений: 339
08.12.2015, 00:08 13
добрый вечер,kundadno,завтра посмотрю Ваш вопрос,сейчас поздно,ложусь спать(завтра рано на работу),еще добавлю
создателю темы макрос yyy3 добавления нового сотрудника и листа отчета по нему.
0
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 17
08.12.2015, 00:21  [ТС] 14
Ошибка может быть в том (что я не смогла сделать самостоятельно ) , что я не создала кнопку? Прописывала вроде тоже самое. Я побывала через Выполнить. Но,подозреваю, что загвоздка не в этом, просто мозги куриные .Для меня это китайская грамота . Я поняла, что освоить это я не в силах. Тут талант нужен. Не всем дано быть Гением . Преклоняюсь перед Вашими знаниями и еще раз СПАСИБО!!!
0
132 / 108 / 22
Регистрация: 23.06.2015
Сообщений: 339
08.12.2015, 00:22 15
Лучший ответ Сообщение было отмечено ольгароманенко как решение

Решение

ольга романенко,протестируйте еще макрос добавления отчета сотрудника,который есть в списке листа Общая,например,Меджитов(удалите или временно переименуйте если такой лист есть):нажимаете кнопку yyy3
,заносите в форму фамилию Меджитов,нажимаете соответствующую кнопку,отчет готов.Используйте для простоты например,названия листов из одной фамилии без пробелов.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub yyy3()
    Dim z(), i&, i1&, j&, m&, t$
    t = Application.InputBox("введите фамилию")
    i1 = Range("A" & Rows.Count).End(xlUp).Row
    z = Sheets("Общая").Range("A2:P" & i1).Value
   For j = 1 To UBound(z, 2): z(1, j) = z(1, j): m = 1: Next
    For i = 2 To UBound(z)
         If z(i, 1) = t Then
         m = m + 1: For j = 1 To UBound(z, 2): z(m, j) = z(i, j): Next
         End If
   Next
   Sheets.Add.Name = t
  Sheets(t).Range("A1").Resize(m, UBound(z, 2)).Value = z
  Sheets(t).Columns("A:P").AutoFit
End Sub
1
Вложения
Тип файла: xls сборка_7_12_2015_cbr_3.xls (63.0 Кб, 12 просмотров)
0 / 0 / 0
Регистрация: 03.12.2015
Сообщений: 5
08.12.2015, 00:43 16
Цитата Сообщение от Svsh2015 Посмотреть сообщение
добрый вечер,kundadno,завтра посмотрю Ваш вопрос
Большое спасибо!!!
0
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 17
08.12.2015, 11:26  [ТС] 17
Вы чудо!!! Сразу появился лист сотрудника с шапкой отчета , нажимаешь кнопочку и данные внесены!!! Вот оно счастье !!!

Добавлено через 1 минуту
Сори, даже кнопочку нажимать не нужно!!!!

Добавлено через 56 минут
Еще раз спасибо. Есть еще вопросик, а как прописать макрос, чтобы н-р сотрудник Швырло попал в лист Уволенные? А я уже применю данный макрос к другим сотрудникам? Понимаю , что нужно прописать другое название листа, но мои попытки что-то изменить в макросе выдает ошибку. Если не трудно,конечно, буду очень признательна. Пока буду пытаться методом тыка .
0
132 / 108 / 22
Регистрация: 23.06.2015
Сообщений: 339
08.12.2015, 12:36 18
добрый день,ольгароманенко,с сотрудником Швырло Д.Ю аналогично,протестируйте: удалите или переименуйте лист Швырло Д.Ю в файл-примере здесь,
нажмите кнопку yyy3,занесите в форму фамилию Швырло Д.Ю, точно так как у Вас написано в листе Общие,нажмите
OK и отчет по данному сотруднику готов,(что такое лист Уволенные поясните...).Можете также в первом макросе поменять фамилию
на Швырло Д.Ю,внизу макроса поменяйте название листа на любой лист,куда надо занести данные,если уже есть лист

Швырло Д.Ю,то надо поменять только название фамилии в тексте макроса, последнюю же строчку выгрузки не трогайте(если требуется,можно также написать макрос,который загружает сразу все фамилии на новые листы,если у Вас много фамилий на листе Общие).
1
Вложения
Тип файла: xls сборка_7_12_2015_cbr_4.xls (69.5 Кб, 13 просмотров)
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 17
08.12.2015, 15:02  [ТС] 19
Будет лист с сотрудниками, которые уволились. Лист будет называться Уволенные. Хотелось бы , чтобы чтобы они автоматом копировались в этот лист. Так как собранный ими ранее товар может продаваться долго. Дело в том, что пока работает сотрудник , ему выплачивается суммы после продажи товара, которые они собрали.В момент увольнения выплачивают всю сумму. По программе за ними висит как бы долг , и из долга вычитается только после
продажи товара.Поэтому после увольнения данные постоянно меняются.
Так я прописала?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub yyy4()
    Dim z(), i&, i1&, j&, m&
    i1 = Range("A" & Rows.Count).End(xlUp).Row
    z = Sheets("Общая").Range("A2:P" & i1).Value
   For j = 1 To UBound(z, 2): z(1, j) = z(1, j): m = 1: Next
    For i = 2 To UBound(z)
         If z(i, 1) = "[COLOR="Magenta"]Швырло[/COLOR]" Then
         m = m + 1: For j = 1 To UBound(z, 2): z(m, j) = z(i, j): Next
         End If
   Next
  Sheets("Уволенные").Range("A1").Resize(m, UBound(z, 2)).Value = z
  Sheets("Уволенные").Columns("A:P").AutoFit
End Sub
Добавлено через 10 минут
Видимо что-то опять не так. Выдает у меня ошибку. Меняла в конце названия с одного на другое и НИЧЕГО не происходит .

Добавлено через 24 минуты
Когда я вместо Швырло ставлю уволенные, а лист прописываю Швырло. В общую добавила в строку Ф.И.О-Уволенные, всё работает( то есть с основного листа на Лист Швырло попадают данные Уволенные) . Меняю местами-не перекидывает. О, горе В чем проблема?

Добавлено через 4 минуты
Получилось!!!!!!!!Вам спасибо огромное !!!! Любви,счастья и благополучия и терпения к таким бездарям, как я. Как зовут Вас мой спаситель, поставлю свечку за Ваше здоровье.

Добавлено через 26 минут
Прошу прощения за назойливость, а как прописать в макросе для двух-трех сотрудников, чтобы они попали в одну папку, так как не хочется создавать для каждого уволенного кнопку ? Заранее спасибо

Добавлено через 36 минут
Еще вопросик. Как сохранить шапку отчета? А то после каждой команды Выполнить , шапка отчета пропадает. Заранее спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.12.2015, 15:02

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Перенос данных с листа на лист при заданном условии
Люди добрые помогите мне надо сделать так, чтоб лист первый ставил данные в лист2 или лист3 и тд...

Копирование определенных ячеек из строки на другой лист по условию
Здравствуйте! Помогите с написанием макроса (я в этом вообще ноль). Есть таблица с листами....

Excel копирование определенных ячеек и строк на другой лист
Здравствуйте. Имеется лист с которого нужно при нажатии кнопки скопировать определенные данные на...

Как прописать копирование и вставку отфильтрованных данных на другой лист - VBA
Здравствуйте. Не могу найти как прописать такую вещь: Есть два столбца. в первый вставляется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.