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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос для копирования всех данных из файлов в 1 файл свод - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для копирования всех данных из файлов в 1 файл свод (Макросы/Sub)
Макрос для копирования всех данных из файлов в 1 файл свод
escoban Дата: Суббота, 20.09.2014, 23:13 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Друзья, очень нужен макрос для копирования данных из разных файлов в каталоге в один сводный файл - подряд строчка за строчкой.
Надо кое-что по бирже склеить.
Условия:
1. Все файлы в одном каталоге
2. Строчек в файле может быть разное количество
3. Файлов - в каталоге сколько угодно,
4. Имена файлов - какие угодно,
5. формируется автоматически файл-свод.

Пример типового файла из которого планируется вытаскивать данные прилагаю.
Заранее спасибо тем кто откликнется.
/Алексей/
К сообщению приложен файл: derivatives-ope.csv (25.8 Kb)
 
Ответить
СообщениеДрузья, очень нужен макрос для копирования данных из разных файлов в каталоге в один сводный файл - подряд строчка за строчкой.
Надо кое-что по бирже склеить.
Условия:
1. Все файлы в одном каталоге
2. Строчек в файле может быть разное количество
3. Файлов - в каталоге сколько угодно,
4. Имена файлов - какие угодно,
5. формируется автоматически файл-свод.

Пример типового файла из которого планируется вытаскивать данные прилагаю.
Заранее спасибо тем кто откликнется.
/Алексей/

Автор - escoban
Дата добавления - 20.09.2014 в 23:13
The_Prist Дата: Суббота, 20.09.2014, 23:31 | Сообщение № 2
Группа: Друзья
Ранг: Участник
Сообщений: 85
Репутация: 22 ±
Замечаний: 0% ±

2010
Как собрать данные с нескольких листов или книг?
Просмотреть все файлы в папке

А вообще учитесь пользоваться поиском - подобных кодов(включая точно под Вашу задачу) - не один десяток наберется(думаю и на этом форуме в том числе).


Errare humanum est, stultum est in errore perseverare

Сообщение отредактировал The_Prist - Суббота, 20.09.2014, 23:32
 
Ответить
СообщениеКак собрать данные с нескольких листов или книг?
Просмотреть все файлы в папке

А вообще учитесь пользоваться поиском - подобных кодов(включая точно под Вашу задачу) - не один десяток наберется(думаю и на этом форуме в том числе).

Автор - The_Prist
Дата добавления - 20.09.2014 в 23:31
escoban Дата: Воскресенье, 21.09.2014, 00:27 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Примеры которые Вы мне кинули - мне не подходят.
Возможно - я просто не смог разобраться ввиду плохого знания VBA.
Если бы я нашел вариант мне подходящий - не стал бы обращаться сюда за помощью

Вот здесь http://www.excelworld.ru/forum/2-4135-1
Матрена выкладывала наиболее близкий к моей нужде вариант, но я никак не соображу как изменить макрос, чтобы вместо только второй строчки, копировалось все содержание листа.
Я пробовал заменять Rows("2").Select на Rows("2:180").Select увы не помогло - макрос выдает ошибку. Кто знает как добиться полного копирования листа - подскажите.

[vba]
Код
Sub LLL()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim Im_Main, Put_File, Put_File_SVOD, NAME_SVOD, schet, str_pch As Variant

Im_Main = ActiveWorkbook.Name
Put_File = Application.ActiveWorkbook.Path + "\БАЗА ДЛЯ СВОДА\"
Put_File_SVOD = Application.ActiveWorkbook.Path + "\"

Dim FS, KATALOG, FILE, MASSIV As Object
Set FS = CreateObject("Scripting.FileSystemObject")
Set KATALOG = FS.GetFolder(Put_File)
Set MASSIV = KATALOG.Files

schet = 0
For Each FILE In MASSIV
schet = schet + 1
Next

Sheets("Свод").Select
Rows("2:65000").Select
Selection.Delete Shift:=xlUp

NAME_SVOD = Trim(Range("G1").Value)

str_pch = 2
If schet <> 0 Then
For Each FILE In MASSIV
Workbooks.Open Filename:=Trim(FILE)

Rows("2").Select
Selection.Copy

Windows(Im_Main).Activate
Rows(Trim(Str(str_pch)) + ":" + Trim(Str(str_pch))).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

Windows(Dir(Trim(FILE))).Activate
ActiveWindow.Close

str_pch = str_pch + 1
Next
End If

Sheets("Свод").Copy

ActiveWorkbook.SaveAs Filename:= _
Put_File_SVOD + NAME_SVOD + ".XLS", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
ActiveWindow.Close
MsgBox "ГОТОВО"
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub
[/vba]
К сообщению приложен файл: mefisto.rar (54.9 Kb)
 
Ответить
СообщениеПримеры которые Вы мне кинули - мне не подходят.
Возможно - я просто не смог разобраться ввиду плохого знания VBA.
Если бы я нашел вариант мне подходящий - не стал бы обращаться сюда за помощью

Вот здесь http://www.excelworld.ru/forum/2-4135-1
Матрена выкладывала наиболее близкий к моей нужде вариант, но я никак не соображу как изменить макрос, чтобы вместо только второй строчки, копировалось все содержание листа.
Я пробовал заменять Rows("2").Select на Rows("2:180").Select увы не помогло - макрос выдает ошибку. Кто знает как добиться полного копирования листа - подскажите.

[vba]
Код
Sub LLL()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Dim Im_Main, Put_File, Put_File_SVOD, NAME_SVOD, schet, str_pch As Variant

Im_Main = ActiveWorkbook.Name
Put_File = Application.ActiveWorkbook.Path + "\БАЗА ДЛЯ СВОДА\"
Put_File_SVOD = Application.ActiveWorkbook.Path + "\"

Dim FS, KATALOG, FILE, MASSIV As Object
Set FS = CreateObject("Scripting.FileSystemObject")
Set KATALOG = FS.GetFolder(Put_File)
Set MASSIV = KATALOG.Files

schet = 0
For Each FILE In MASSIV
schet = schet + 1
Next

Sheets("Свод").Select
Rows("2:65000").Select
Selection.Delete Shift:=xlUp

NAME_SVOD = Trim(Range("G1").Value)

str_pch = 2
If schet <> 0 Then
For Each FILE In MASSIV
Workbooks.Open Filename:=Trim(FILE)

Rows("2").Select
Selection.Copy

Windows(Im_Main).Activate
Rows(Trim(Str(str_pch)) + ":" + Trim(Str(str_pch))).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False

Windows(Dir(Trim(FILE))).Activate
ActiveWindow.Close

str_pch = str_pch + 1
Next
End If

Sheets("Свод").Copy

ActiveWorkbook.SaveAs Filename:= _
Put_File_SVOD + NAME_SVOD + ".XLS", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
ActiveWindow.Close
MsgBox "ГОТОВО"
Application.ScreenUpdating = True
Application.DisplayAlerts = True

End Sub
[/vba]

Автор - escoban
Дата добавления - 21.09.2014 в 00:27
escoban Дата: Понедельник, 22.09.2014, 13:25 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Тема господа закрыта. Все сделал через надстройку MulTEx.
 
Ответить
СообщениеТема господа закрыта. Все сделал через надстройку MulTEx.

Автор - escoban
Дата добавления - 22.09.2014 в 13:25
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос для копирования всех данных из файлов в 1 файл свод (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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