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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.05.2015, 10:14   #1
Exclussive
 
Регистрация: 24.05.2015
Сообщений: 3
По умолчанию Как суммировать данные из разных книг, в одну новую

Нужно к примеру собрать информацию из множества книг Excel, а именно из всех ячеек A1, в другую книгу. То есть сумма всех ячеек A1 из множества книг в отдельную книгу. Второй вопрос в том, как сделать , чтоб при создании нового файла Excel, ячейки A1 так же учитывались в конечной книге. Названия книг соответствуют текущей дате и имеют порядковые номера в порядке возрастания. К примеру (21.05.2015(1(+1)))....
к примеру , сегодня я создаю новую книгу ее названием будет сегодняшняя дата и порядковый номер,с каждым новым документом Excel его порядковый номер будет увеличиваться на 1, не зависимо какого числа он был создан. Например сегодня это будет 21.05.2015(1) , а завтра 22.05.2015(2). Так же может быть 21.05.2015(1) , 21.05.2015(2) и так далее.
Целевая книга находится в другой папке, например каталог папок (Папка№1, Папка№2, Папка№3 и так далее), Наличие новых книг нужно проверять в любое время при открытии целевой книги.
http://www.cyberforum.ru/ms-excel/thread1453850.html
На нашем примере , C:\zirkon\back\Vita путь к одной из папок , в ней находится множество документов Эксель , из которых надо собрать и просуммировать числа из ячеек M20 лист называется Наряд заказа. все это в отдельный файл, как просил выше. Все тоже только вот адреса другие
Этот же вопрос задавали на другом форуме, если есть кто может помочь , помогите)
Exclussive вне форума Ответить с цитированием
Старый 24.05.2015, 11:53   #2
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Код:
Private Sub Workbook_Open()
    Dim iPath$, iFileName$, iAddress$, iResult#
    
    iPath = "C:\Zirkon\Back\Vita\"
    iFileName = Dir(iPath & "*.xls*")
    
    While Len(iFileName)
       iAddress = "'" & iPath & "[" & iFileName & "]Наряд заказа'!R20C13"
       iResult = iResult + ExecuteExcel4Macro(iAddress)
       iFileName = Dir
    Wend
    
    MsgBox iResult, , "" 'Лист1.[M20] = iResult
End Sub
P.S. Новая книга - здесь не создаётся.

Последний раз редактировалось pashulka; 24.05.2015 в 11:55.
pashulka вне форума Ответить с цитированием
Старый 24.05.2015, 12:06   #3
Exclussive
 
Регистрация: 24.05.2015
Сообщений: 3
По умолчанию

Новая книга не создается , это значит , что новая конечная книга не создается или книга Эксель из которой надо данные считывать. Не могли бы вы отправить образец готовой конечной книги
Exclussive вне форума Ответить с цитированием
Старый 24.05.2015, 12:23   #4
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Это значит, что создать новую книгу может любой человек, которому это действительно нужно, ибо макрорекордер(запись макроса) пока никто не отменял.
Вложения
Тип файла: zip Sample_for_Zver0555.zip (7.9 Кб, 42 просмотров)

Последний раз редактировалось pashulka; 24.05.2015 в 15:58.
pashulka вне форума Ответить с цитированием
Старый 26.05.2015, 12:43   #5
Exclussive
 
Регистрация: 24.05.2015
Сообщений: 3
По умолчанию

Цитата:
Сообщение от pashulka Посмотреть сообщение
Это значит, что создать новую книгу может любой человек, которому это действительно нужно, ибо макрорекордер(запись макроса) пока никто не отменял.
Цитата:
Private Sub Workbook_Open()
Dim iPath$, iFileName$, iAddress$, iResult#, iCellValue As Variant

iPath = "C:\Zirkon\Back\Vita\"
iFileName = Dir(iPath & "*.xls*")

While Len(iFileName)
iAddress = "'" & iPath & "[" & iFileName & "]Наряд заказа'!R20C13"
iCellValue = ExecuteExcel4Macro(iAddress)

If IsNumeric(iCellValue) Then iResult = iResult + iCellValue
iFileName = Dir
Wend

Лист1.[A1] = iResult 'MsgBox iResult, , ""
End Sub
Как можно прописать что бы с разных папок считала ?
и если есть внутри еще папки можно ли что бы она там тоже искала?
Exclussive вне форума Ответить с цитированием
Старый 26.05.2015, 13:16   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
и если есть внутри еще папки можно ли что бы она там тоже искала?
короткий ответ: МОЖНО
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.05.2015, 20:33   #7
pashulka
Форумчанин
 
Регистрация: 03.11.2006
Сообщений: 524
По умолчанию

Менее лапидарный ответ :

Код:
Private Sub Workbook_Open()
    Dim iResult#, iPath As Variant
    
    With CreateObject("Scripting.FileSystemObject")
         For Each iPath In Array("C:\Gold\Next\Drug", "C:\Ruby\Geo", "C:\Zirkon\Back\Vita")
             If .FolderExists(iPath) = True Then SumCellM20 .GetFolder(iPath), iResult
         Next
    End With
    
    MsgBox iResult, , "" 'Лист1.[M20] = iResult
End Sub

Private Sub SumCellM20(iFolder As Object, iResult#)
    Dim iFile As Object, iFileName$, iAddress$, iCellValue As Variant
    
    For Each iFile In iFolder.Files
        iFileName = iFile.Name
        If LCase(iFileName) Like "*.xls*" Then
           iAddress = "'" & iFolder & "\[" & iFileName & "]Наряд заказа'!R20C13"
           iCellValue = ExecuteExcel4Macro(iAddress)
           
           If IsNumeric(iCellValue) = True Then iResult = iResult + iCellValue
        End If
    Next
    
    For Each iFolder In iFolder.SubFolders
        SumCellM20 iFolder, iResult
    Next
End Sub
pashulka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
копировнаие с разных книг в одну на один лист chib_sv Microsoft Office Excel 1 06.04.2014 12:49
Объединение данных из разных книг в одну книгу. judicator Microsoft Office Excel 4 18.01.2012 14:44
сбор данных с разных книг в одну Ledy1987 Microsoft Office Excel 26 20.04.2011 21:33
Суммировать листы из разных книг ? TomCat81 Microsoft Office Excel 10 05.10.2010 10:17
Сбор даных с разных книг в одну Pao Microsoft Office Excel 28 12.07.2010 07:27