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

Вход

Регистрация

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

 

= Мир MS Excel/получение информации с файлов макросом - Мир MS Excel

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

Excel 2016 (Office 365)
ДОбрый день! Помогите пожалуйста создать макрос, который будет считывать информацию со всех файлов в определенной папке по следующему принципу!

Допустим в папке c:\temp находится 100 файлов (1.xlsm, 2.xlsm ...100.xlsm) - отсюда берем данные и еще один файл example.xlsm - сюда записываем данные
Нужно чтобы
1) с ячейки b1 всех файлов (1.xlsm, 2.xlsm ...100.xlsm) записались данные в стобец b (1..100) в файл example.xlsm Ввиде значений или ссылок на файлы
2) в ячейки а1...а100 в файл example.xlsm записались названия этих файлов соответственно.
Может ли кто-то помочь с таким макросом?
К сообщению приложен файл: example.xlsm (11.2 Kb)


Сообщение отредактировал leskris - Четверг, 27.08.2015, 14:17
 
Ответить
СообщениеДОбрый день! Помогите пожалуйста создать макрос, который будет считывать информацию со всех файлов в определенной папке по следующему принципу!

Допустим в папке c:\temp находится 100 файлов (1.xlsm, 2.xlsm ...100.xlsm) - отсюда берем данные и еще один файл example.xlsm - сюда записываем данные
Нужно чтобы
1) с ячейки b1 всех файлов (1.xlsm, 2.xlsm ...100.xlsm) записались данные в стобец b (1..100) в файл example.xlsm Ввиде значений или ссылок на файлы
2) в ячейки а1...а100 в файл example.xlsm записались названия этих файлов соответственно.
Может ли кто-то помочь с таким макросом?

Автор - leskris
Дата добавления - 27.08.2015 в 13:37
leskris Дата: Четверг, 27.08.2015, 14:03 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 90
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016 (Office 365)
все файлы в папке с расширением .xlsm Вообще по плану в папке должны распологаться только файлы ексель начинающиеся с букв ID


Сообщение отредактировал leskris - Четверг, 27.08.2015, 14:06
 
Ответить
Сообщениевсе файлы в папке с расширением .xlsm Вообще по плану в папке должны распологаться только файлы ексель начинающиеся с букв ID

Автор - leskris
Дата добавления - 27.08.2015 в 14:03
Manyasha Дата: Четверг, 27.08.2015, 14:18 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
leskris, если в папке только нужные файлы, то можно так:
[vba]
Код
Sub List_files()
     Application.ScreenUpdating = 0
     With ThisWorkbook
         .Sheets(1).Range("A2:B" & Cells(Cells.Rows.Count, 1).Row).ClearContents
         MyPath = "C:\files\"
         myName = Dir(MyPath, vbDirectory)
         i = 1
         Do While myName <> ""
             If myName <> "." And myName <> ".." And myName <> ThisWorkbook.Name Then
                 .Sheets(1).Cells(i, 1) = myName
                 Set wb = Workbooks.Open(Filename:=MyPath & myName)
                 .Sheets(1).Cells(i, 2) = wb.Sheets(1).Range("b1")
                 wb.Close
                 i = i + 1
             End If
             myName = Dir
         Loop
     End With
     Application.ScreenUpdating = 1
End Sub
[/vba]
Список формируется из файлов в "C:\files", замените этот адрес на свой
К сообщению приложен файл: example-1.xlsm (17.9 Kb)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеleskris, если в папке только нужные файлы, то можно так:
[vba]
Код
Sub List_files()
     Application.ScreenUpdating = 0
     With ThisWorkbook
         .Sheets(1).Range("A2:B" & Cells(Cells.Rows.Count, 1).Row).ClearContents
         MyPath = "C:\files\"
         myName = Dir(MyPath, vbDirectory)
         i = 1
         Do While myName <> ""
             If myName <> "." And myName <> ".." And myName <> ThisWorkbook.Name Then
                 .Sheets(1).Cells(i, 1) = myName
                 Set wb = Workbooks.Open(Filename:=MyPath & myName)
                 .Sheets(1).Cells(i, 2) = wb.Sheets(1).Range("b1")
                 wb.Close
                 i = i + 1
             End If
             myName = Dir
         Loop
     End With
     Application.ScreenUpdating = 1
End Sub
[/vba]
Список формируется из файлов в "C:\files", замените этот адрес на свой

Автор - Manyasha
Дата добавления - 27.08.2015 в 14:18
leskris Дата: Четверг, 27.08.2015, 14:24 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 90
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016 (Office 365)
если я правильно понял код макроса, то он выводит название файлов только, а мне нужно конкретно значения ячейки с разных файлов в стобик. Во всяком случае мне выводит, только название файлов.


Сообщение отредактировал leskris - Четверг, 27.08.2015, 14:35
 
Ответить
Сообщениеесли я правильно понял код макроса, то он выводит название файлов только, а мне нужно конкретно значения ячейки с разных файлов в стобик. Во всяком случае мне выводит, только название файлов.

Автор - leskris
Дата добавления - 27.08.2015 в 14:24
leskris Дата: Четверг, 27.08.2015, 14:34 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 90
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016 (Office 365)
Большое спасибо, все работает!!! )


Сообщение отредактировал leskris - Четверг, 27.08.2015, 14:47
 
Ответить
СообщениеБольшое спасибо, все работает!!! )

Автор - leskris
Дата добавления - 27.08.2015 в 14:34
Manyasha Дата: Четверг, 27.08.2015, 14:43 | Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
leskris, может я не правильно поняла Ваш 1-й пункт?
Макрос открывает файл, и копирует значение из ячейки b1 (с первого листа) в столбец b файла example.
Т.е., в файле example на листе1 будет:
В1 = файл1.Лист1.В1
В2 = файл2.Лист1.В1
В3 = файл3.Лист1.В1

Правильно?


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеleskris, может я не правильно поняла Ваш 1-й пункт?
Макрос открывает файл, и копирует значение из ячейки b1 (с первого листа) в столбец b файла example.
Т.е., в файле example на листе1 будет:
В1 = файл1.Лист1.В1
В2 = файл2.Лист1.В1
В3 = файл3.Лист1.В1

Правильно?

Автор - Manyasha
Дата добавления - 27.08.2015 в 14:43
leskris Дата: Четверг, 27.08.2015, 14:51 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 90
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016 (Office 365)
это моя ошибка, я не правильно создал проверочные файлы, поэтому было пусто и я решил, что не работает, все впорядке. Спасибо!!
чтобы тоже самое повторить с ячейкой с нужно [vba]
Код
.Sheets(1).Cells(i, 3) = wb.Sheets(1).Range("с1")
[/vba] так сделать?
 
Ответить
Сообщениеэто моя ошибка, я не правильно создал проверочные файлы, поэтому было пусто и я решил, что не работает, все впорядке. Спасибо!!
чтобы тоже самое повторить с ячейкой с нужно [vba]
Код
.Sheets(1).Cells(i, 3) = wb.Sheets(1).Range("с1")
[/vba] так сделать?

Автор - leskris
Дата добавления - 27.08.2015 в 14:51
Manyasha Дата: Четверг, 27.08.2015, 14:54 | Сообщение № 8
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Да, правильно. Или так еще можно[vba]
Код
.Sheets(1).Range("C" & i) = wb.Sheets(1).Range("с1")
[/vba]или, как я сама недавно узнала, так
[vba]
Код
.Sheets(1).Cells(i, "C") = wb.Sheets(1).Range("с1")
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеДа, правильно. Или так еще можно[vba]
Код
.Sheets(1).Range("C" & i) = wb.Sheets(1).Range("с1")
[/vba]или, как я сама недавно узнала, так
[vba]
Код
.Sheets(1).Cells(i, "C") = wb.Sheets(1).Range("с1")
[/vba]

Автор - Manyasha
Дата добавления - 27.08.2015 в 14:54
leskris Дата: Четверг, 27.08.2015, 15:00 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 90
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016 (Office 365)
спасибо а то я уже пол дня чушь пишу километровую, а тут все как просто выходит ))
 
Ответить
Сообщениеспасибо а то я уже пол дня чушь пишу километровую, а тут все как просто выходит ))

Автор - leskris
Дата добавления - 27.08.2015 в 15:00
Viv Дата: Среда, 16.09.2015, 11:48 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 2 ±
Замечаний: 60% ±

Excel 2003;Excel 2013
реализация на данном сайте Ссылка удалена. Согласовывайте рекламу с администратором


www.vbastudio.ru

Сообщение отредактировал Pelena - Среда, 16.09.2015, 11:53
 
Ответить
Сообщениереализация на данном сайте Ссылка удалена. Согласовывайте рекламу с администратором

Автор - Viv
Дата добавления - 16.09.2015 в 11:48
Мир MS Excel » Вопросы и решения » Вопросы по VBA » получение информации с файлов макросом (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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