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

Вход

Регистрация

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

 

= Мир MS Excel/Заполнение таблицы данными из таблиц других листов - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Заполнение таблицы данными из таблиц других листов
Искра Дата: Среда, 13.11.2013, 23:31 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток!

Это моя первая сложная работа с макросами. Части поставленной задачи не могу разобрать. Помогите, пожалуйста, записать код макроса на следующую таблицу. На листах 1 и 2 есть данные, которые постоянно пополняются. На листе 3 должна формироваться таблица с объединенными данными с этих двух листов по номеру заказа. ФИО могут отличаться на этих двух листах, тогда по ячейкам в обобщенной таблице факта и плана может быть "пусто".

Еще на листе 4 есть таблица данных, из которой также по данным номера заказа будет формироваться таблица на листе 5. Из всплывающего списка в ячейке А2 будет выбираться номер заказа, и по этому номеру будет заполняться таблица. К датам легко применима формула СУММАЕСЛИ, но! К заказчику и № договора ее применить нельзя. Может быть есть другая формула, которую можно применить, или же макросом записать такое действие?

Буду благодарна Вашей помощи!!!
К сообщению приложен файл: __.xlsm (13.4 Kb)


Сообщение отредактировал Искра - Среда, 13.11.2013, 23:33
 
Ответить
СообщениеДоброго времени суток!

Это моя первая сложная работа с макросами. Части поставленной задачи не могу разобрать. Помогите, пожалуйста, записать код макроса на следующую таблицу. На листах 1 и 2 есть данные, которые постоянно пополняются. На листе 3 должна формироваться таблица с объединенными данными с этих двух листов по номеру заказа. ФИО могут отличаться на этих двух листах, тогда по ячейкам в обобщенной таблице факта и плана может быть "пусто".

Еще на листе 4 есть таблица данных, из которой также по данным номера заказа будет формироваться таблица на листе 5. Из всплывающего списка в ячейке А2 будет выбираться номер заказа, и по этому номеру будет заполняться таблица. К датам легко применима формула СУММАЕСЛИ, но! К заказчику и № договора ее применить нельзя. Может быть есть другая формула, которую можно применить, или же макросом записать такое действие?

Буду благодарна Вашей помощи!!!

Автор - Искра
Дата добавления - 13.11.2013 в 23:31
nilem Дата: Четверг, 14.11.2013, 08:51 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Привет
с листами 4 и 5 - непонятно. А с 1-3 попробуйте так
[vba]
Код
Sub ertert()
Dim x, y, i&, j&
With Sheets("Sheet1")
     x = .Range("A1:D" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
End With: x(1, 4) = "Факт"
With CreateObject("Scripting.Dictionary")
     .CompareMode = 1
     For i = 1 To UBound(x)
         .Item(x(i, 1) & "~" & x(i, 2)) = i
     Next i
     With Sheets("Sheet2")
         y = .Range("A2:D" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
     End With
     For i = 1 To UBound(y)
         If .Exists(y(i, 1) & "~" & y(i, 2)) Then
             x(.Item(y(i, 1) & "~" & y(i, 2)), 4) = y(i, 3)
         Else
             j = j + 1
             y(j, 1) = y(i, 1): y(j, 2) = y(i, 2)
             y(j, 3) = "": y(j, 4) = y(i, 3)
         End If
     Next i
End With
With Sheets("Sheet3").Range("A1")
     .CurrentRegion.ClearContents
     .Resize(UBound(x), 4).Value = x
     .Item(UBound(x) + 1, 1).Resize(j, 4).Value = y
     With .CurrentRegion
         .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlYes
     End With
End With
End Sub
[/vba]
зеленая кнопка в файле
К сообщению приложен файл: _ertert.xlsm (24.6 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
СообщениеПривет
с листами 4 и 5 - непонятно. А с 1-3 попробуйте так
[vba]
Код
Sub ertert()
Dim x, y, i&, j&
With Sheets("Sheet1")
     x = .Range("A1:D" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
End With: x(1, 4) = "Факт"
With CreateObject("Scripting.Dictionary")
     .CompareMode = 1
     For i = 1 To UBound(x)
         .Item(x(i, 1) & "~" & x(i, 2)) = i
     Next i
     With Sheets("Sheet2")
         y = .Range("A2:D" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
     End With
     For i = 1 To UBound(y)
         If .Exists(y(i, 1) & "~" & y(i, 2)) Then
             x(.Item(y(i, 1) & "~" & y(i, 2)), 4) = y(i, 3)
         Else
             j = j + 1
             y(j, 1) = y(i, 1): y(j, 2) = y(i, 2)
             y(j, 3) = "": y(j, 4) = y(i, 3)
         End If
     Next i
End With
With Sheets("Sheet3").Range("A1")
     .CurrentRegion.ClearContents
     .Resize(UBound(x), 4).Value = x
     .Item(UBound(x) + 1, 1).Resize(j, 4).Value = y
     With .CurrentRegion
         .Sort Key1:=.Cells(1, 1), Order1:=xlAscending, Header:=xlYes
     End With
End With
End Sub
[/vba]
зеленая кнопка в файле

Автор - nilem
Дата добавления - 14.11.2013 в 08:51
KuklP Дата: Четверг, 14.11.2013, 09:21 | Сообщение № 3
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Четверг, 14.11.2013, 09:22
 
Ответить
СообщениеКросс:
http://www.planetaexcel.ru/forum....e437397

Автор - KuklP
Дата добавления - 14.11.2013 в 09:21
Искра Дата: Понедельник, 02.12.2013, 22:55 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
nilem, благодарю! Наконец-то я вернулась к этому макросу... Есть такой момент, что макрос заполняет таблицу просто всеми данными, а не по фильтру номера заказа ((((((((( Сейчас немного изменила таблицу конечную, чтобы примерно понимать, как фильтр должен быть... Прошу помощи, если есть возможность!!!
К сообщению приложен файл: 5908477.xlsm (10.4 Kb)
 
Ответить
Сообщениеnilem, благодарю! Наконец-то я вернулась к этому макросу... Есть такой момент, что макрос заполняет таблицу просто всеми данными, а не по фильтру номера заказа ((((((((( Сейчас немного изменила таблицу конечную, чтобы примерно понимать, как фильтр должен быть... Прошу помощи, если есть возможность!!!

Автор - Искра
Дата добавления - 02.12.2013 в 22:55
nilem Дата: Вторник, 03.12.2013, 09:15 | Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
проверяйте
К сообщению приложен файл: _5908477.xlsm (20.8 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениепроверяйте

Автор - nilem
Дата добавления - 03.12.2013 в 09:15
Гость Дата: Вторник, 03.12.2013, 14:33 | Сообщение № 6
Группа: Гости
Ого! Всё работает!!! Благодарю от души!!! Буду изучать его работу))))
 
Ответить
СообщениеОго! Всё работает!!! Благодарю от души!!! Буду изучать его работу))))

Автор - Гость
Дата добавления - 03.12.2013 в 14:33
Искра Дата: Четверг, 27.02.2014, 11:43 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток, уважаемые участники данного форума и в частности автор nilem!!
С моим файлом немного усложнилась задача. Макрос прекрасно работает, когда в ячейке А2 на листе 3 вписываем число. Но сейчас в данной ячейке будут данные из списка заказов, сформированного с помощью "проверки данных". Также в листах 1 и 2 по столбцам А данные внесены формулами. И макрос логично "ругается" на ячейку А2 листа 3 с range.value. Не могу понять, как это исправить, чтобы макрос работал в этом случае.Прикрепляю файл примером, как это выглядит. Надеюсь на Вашу помощь.
К сообщению приложен файл: _5908477-1.xlsm (23.0 Kb)


Сообщение отредактировал Искра - Четверг, 27.02.2014, 13:21
 
Ответить
СообщениеДоброго времени суток, уважаемые участники данного форума и в частности автор nilem!!
С моим файлом немного усложнилась задача. Макрос прекрасно работает, когда в ячейке А2 на листе 3 вписываем число. Но сейчас в данной ячейке будут данные из списка заказов, сформированного с помощью "проверки данных". Также в листах 1 и 2 по столбцам А данные внесены формулами. И макрос логично "ругается" на ячейку А2 листа 3 с range.value. Не могу понять, как это исправить, чтобы макрос работал в этом случае.Прикрепляю файл примером, как это выглядит. Надеюсь на Вашу помощь.

Автор - Искра
Дата добавления - 27.02.2014 в 11:43
Искра Дата: Среда, 05.03.2014, 12:41 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Разобралась сама)))
Все оказалось просто:
Dim x, y (), I&, j&, nz& - где nz убираем &
 
Ответить
СообщениеРазобралась сама)))
Все оказалось просто:
Dim x, y (), I&, j&, nz& - где nz убираем &

Автор - Искра
Дата добавления - 05.03.2014 в 12:41
severyanin Дата: Среда, 23.03.2016, 14:29 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
подсобите аналогичная табличка но добавлен отбор. по группам и периодам. спасиб.
[moder]Читаем Правила форума, создаём свою тему. Эта тема закрыта[/moder]
К сообщению приложен файл: 77.rar (30.4 Kb)


Сообщение отредактировал Pelena - Среда, 23.03.2016, 14:33
 
Ответить
Сообщениеподсобите аналогичная табличка но добавлен отбор. по группам и периодам. спасиб.
[moder]Читаем Правила форума, создаём свою тему. Эта тема закрыта[/moder]

Автор - severyanin
Дата добавления - 23.03.2016 в 14:29
  • Страница 1 из 1
  • 1
Поиск:

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