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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2010, 11:09   #1
Pao
Пользователь
 
Регистрация: 16.06.2010
Сообщений: 16
По умолчанию Сбор даных с разных книг в одну

Здравствуйте! Есть такая необходимость каждый день вносить данные из таблиц экспорта отчетов в одну сводную как можно автоматизировать этот процес чтоб не вводить эти данные вручную, причем в таблице отчета строка итого плавующая зависит от количества платежей а столбцы всегда одни и тежи. Осмотрел похожие темы но не че сам сообразить не смог, помогите кто чем может.
Вложения
Тип файла: rar пример.rar (20.3 Кб, 35 просмотров)
Pao вне форума Ответить с цитированием
Старый 16.06.2010, 12:37   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Запускать через Alt+F8 на активном листе ДействительныеПлатежиНаличными_3_20 100614.xls (т.е. в той книге, которую подтягиваем в сводную), сам код в книге Сводная таблица.xls:

Код:
Sub export()
dt = Format([General_TODATE], "dd") 'определяем дату отчёта
zaccol = dt * 2 'определяем колонку для записи "Зачислено" 
iLastRow = Cells(Rows.Count, 2).End(xlUp).Row 'определяем последнюю строку
terminal = Cells(iLastRow - 1, 5) 'определяем терминал
zac = Cells(iLastRow, 13) 'определяем "Зачислено"
com = Cells(iLastRow, 12) 'определяем "Комиссия"

ThisWorkbook.Sheets(1).Cells(terminal + 4, zaccol).Value = zac 'заносим "Зачислено"
ThisWorkbook.Sheets(1).Cells(terminal + 5, zaccol + 1).Value = com 'заносим "Комиссия"

End Sub
Код привязан к положению терминалов, дат, "Комиссия" и "Зачислено" и ниже "Итого" ничего быть не должно в этом столбце.
Если есть желание подтягивать сразу из всех файлов папки или из выбранных в диалоге, можно обвязать перебором файлов папки или в начале кода добавить диалог выбора файлов для анализа.
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 16.06.2010 в 12:49.
Hugo121 вне форума Ответить с цитированием
Старый 17.06.2010, 07:25   #3
Pao
Пользователь
 
Регистрация: 16.06.2010
Сообщений: 16
По умолчанию

Пишет ошибку и желтым выделяет dt = Format([General_TODATE], "dd") 'определяем дату отчёта
я так понял не может определить дату отчета.
Pao вне форума Ответить с цитированием
Старый 17.06.2010, 09:29   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Код запускаете на файле ДействительныеПлатежиНаличными_3_20 100614.xls ?
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 17.06.2010, 11:58   #5
Pao
Пользователь
 
Регистрация: 16.06.2010
Сообщений: 16
По умолчанию

если запускаю из сводной таблицы то да эта ошибка а если делаю как во втором посте написано то не чего не происходит. Или может я что-то не правильно делаю?

Последний раз редактировалось Pao; 17.06.2010 в 12:33.
Pao вне форума Ответить с цитированием
Старый 17.06.2010, 12:47   #6
Pao
Пользователь
 
Регистрация: 16.06.2010
Сообщений: 16
По умолчанию

Все зароботало огромное спасибо!!!
Вот еще вопос как понять обвязать перебором?
Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Если есть желание подтягивать сразу из всех файлов папки или из выбранных в диалоге, можно обвязать перебором файлов папки или в начале кода добавить диалог выбора файлов для анализа.
Pao вне форума Ответить с цитированием
Старый 17.06.2010, 15:10   #7
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Обвязать перебором (может и нет в программировании такого сленга ) - это я думал "вставить этот код внутрь перебора всех файлов папки", погуглите по Dir()
Пример, где это используется:
Код:
Sub Spalik()
Const fldr = "C:\temp\"         ' Путь к папке с файлами
Dim strFile As String, wb As Workbook, ws As Worksheet, wsSum As Worksheet
 
Application.ScreenUpdating = False  'нет мелькания на экране
Set wsSum = ActiveSheet
strFile = Dir(fldr & "*.xls")
Do While strFile <> ""          'Цикл по файлам
    Set wb = Workbooks.Open(fldr & strFile, ReadOnly:=True)
    For Each ws In wb.Worksheets    'цикл по рабочим листам файла
        ws.UsedRange.Copy
        wsSum.Range(ws.UsedRange.Address).PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd, False, False
    Next
    wb.Close False
    strFile = Dir
Loop
Application.ScreenUpdating = True
End Sub
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 17.06.2010 в 15:14.
Hugo121 вне форума Ответить с цитированием
Старый 18.06.2010, 11:24   #8
Pao
Пользователь
 
Регистрация: 16.06.2010
Сообщений: 16
По умолчанию

Ну с этим я думаю уже сам смогу разобраться.
Сегодня начал выдовать ошибку
Run-time error 13 Type mismatch
и желтым выделяет ThisWorkbook.Sheets(1).Cells(termin al + 4, zaccol).Value = zac 'заносим "Зачислено"
Я так понял что идет не совпадение формата ячеек и он не может записать данные в ячейку или тут в чемто другом загвозда?
Pao вне форума Ответить с цитированием
Старый 18.06.2010, 11:58   #9
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Наверное не число terminal или zaccol.
zaccol = dt * 2 - значит может dt не определилось.
terminal = Cells(iLastRow - 1, 5) - что в этой ячейке?
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 18.06.2010 в 12:08.
Hugo121 вне форума Ответить с цитированием
Старый 21.06.2010, 07:51   #10
Pao
Пользователь
 
Регистрация: 16.06.2010
Сообщений: 16
По умолчанию

dt - число определилось правильно,
zaccol - колонку определил правильно соответствующюю числу,
terminal = Cells(iLastRow - 1, 5) - название терминала тоже нормально
Названия терминалов в сводной таблице и в экспорте совпадают.
Pao вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сбор данных с разных книг в одну Ledy1987 Microsoft Office Excel 26 20.04.2011 21:33
Сбор данных с множества книг в одну по шаблонам Adeletto Microsoft Office Excel 3 11.06.2010 17:07
Обьединение разных типов даных женя2010 Microsoft Office Excel 3 21.04.2010 12:56
Сбор данных из разных книг 804040 Microsoft Office Excel 2 19.04.2010 15:33
Сбор данных с разных файлов Fess111 Microsoft Office Excel 2 09.03.2010 10:13