Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2010, 18:38   #1
S_P_N
 
Регистрация: 31.05.2010
Сообщений: 7
По умолчанию Суммирование данных с разных листов

Всем добрый день и хорошего настроения.
Научите пожалуйста
Задача: Получить общие данные в отдельной таблице на новом листе. Есть несколько заказов на продукцию. Номенклатура в заказах может повторяться. Нужно получить общий заказ в таблице такой же формы.
Вложения
Тип файла: rar Пример.rar (13.0 Кб, 29 просмотров)
S_P_N вне форума Ответить с цитированием
Старый 31.05.2010, 18:47   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

А что делать с повторяющимися данными?

Вот что у меня получилось:

Код:
Sub main()
    clearSheet
    On Error Resume Next: Application.ScreenUpdating = False
    Dim sh As Worksheet, ra As Range
    For Each sh In ThisWorkbook.Worksheets
        If sh.Name <> ActiveSheet.Name Then
            GetSheetRange(sh).Copy Range("a" & Rows.Count).End(xlUp).Offset(1)
        End If
    Next sh
    Range(Range("a2"), Range("a" & Rows.Count).End(xlUp)).FormulaR1C1 = "=row()-1"
End Sub

Sub clearSheet()
    ActiveSheet.UsedRange.Offset(1).Clear
End Sub

Function GetSheetRange(ByRef sh As Worksheet) As Range
    Set GetSheetRange = sh.Range(sh.Range("a2"), sh.Range("a" & sh.Rows.Count).End(xlUp)).Resize(, 8)
End Function
Пример в файле:


Последний раз редактировалось EducatedFool; 31.05.2010 в 18:55.
EducatedFool вне форума Ответить с цитированием
Старый 31.05.2010, 19:04   #3
S_P_N
 
Регистрация: 31.05.2010
Сообщений: 7
По умолчанию

Повторяющиеся данные нужно просуммировать
S_P_N вне форума Ответить с цитированием
Старый 31.05.2010, 23:07   #4
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Во вложении сложение с помощью сводной таблицы и консолидации.
Вложения
Тип файла: rar Пример2.rar (42.3 Кб, 43 просмотров)
ZORRO2005 вне форума Ответить с цитированием
Старый 01.06.2010, 09:01   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Посмотрите вложение. Запустите макрос "Main".
Вложения
Тип файла: rar Пример_2.rar (21.1 Кб, 33 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 01.06.2010, 11:11   #6
S_P_N
 
Регистрация: 31.05.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от ZORRO2005 Посмотреть сообщение
Во вложении сложение с помощью сводной таблицы и консолидации.
Подскажите что делать если заказы будут добавляться?
S_P_N вне форума Ответить с цитированием
Старый 01.06.2010, 11:13   #7
S_P_N
 
Регистрация: 31.05.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
Посмотрите вложение. Запустите макрос "Main".
Открыл файл, запустил макрос, выдает сообщение: Run-time error "1004": Метод PasteSpecial из класса Range завершен не верно.
S_P_N вне форума Ответить с цитированием
Старый 01.06.2010, 11:24   #8
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Открыл файл, запустил макрос, выдает сообщение: Run-time error "1004": Метод PasteSpecial из класса Range завершен не верно.
В Файле проблем нет. Все корректно работает и в 2003 и в 2007. Ищите в другом месте. Ну, да ладно. Посмотрите вложение, в котором нет метода PasteSpecial.
Вложения
Тип файла: rar Пример_3.rar (21.1 Кб, 41 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 01.06.2010, 12:05   #9
S_P_N
 
Регистрация: 31.05.2010
Сообщений: 7
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
В Файле проблем нет. Все корректно работает и в 2003 и в 2007. Ищите в другом месте. Ну, да ладно. Посмотрите вложение, в котором нет метода PasteSpecial.
У меня Office 2000, может поэтому некорректно...
В этом фале все отлично, СПАСИБО!
Если заказы будут добавляться, что делать?
S_P_N вне форума Ответить с цитированием
Старый 01.06.2010, 12:20   #10
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Цитата:
Сообщение от S_P_N Посмотреть сообщение
Подскажите что делать если заказы будут добавляться?
Диапазоны взять с запасом.
ZORRO2005 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Транспонирование множества данных из разных книгах или из разных листов на 1 лист посредством макроса Тантана Microsoft Office Excel 6 18.12.2014 13:04
Суммирование ячеек с заданного диапазона листов skivpokemon Microsoft Office Excel 18 05.06.2010 01:14
Перенос данных с разных листов в один с фильтром... Tsvetochek Microsoft Office Excel 3 15.05.2010 17:06
График-диаграмма основанная на данных с разных листов.Help Inside Microsoft Office Excel 2 20.10.2009 00:30
Вставка значений из разных листов AntiZero Microsoft Office Excel 2 16.11.2007 18:27