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

Вход

Регистрация

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

 

= Мир MS Excel/Выполнение макроса с обращением к нескольким книгам - Мир MS Excel

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

Excel 2007
Приветствую ! В краце опишу ситуацию с которой никак не получается разобраться самостоятельно.
Сразу подчеркну, что Все книги в абсолютно одинаковой форме.
форма такая

№п/п, наименование, Единицы измерения, информация

Изменяться будут только 3 и 4 столбцы

Имеется:
-1 книга - пустой шаблон с пустыми 3 и 4 столбцами
-7 книг - в которых частично заполнены 3 и 4 столбец

С помощью записи макроса, я копировал нужные мне столбцы из всех 7 книг и специальной вставкой с нужным мне форматированием(чтобы менялись только данные, и пропускались пустые строчки) вставлял их в пустой шаблон.

Таблица наполняется, никаких проблем.
НО, в макрос прописываются пути к требуемым книгам, а у меня таких шаблонов около 5 тысяч, к которым нужно применить этот же макрос.

Вопрос, реально ли сделать так, чтобы макрос срабатывал на уже открытые книги, а не привязывался к пути. Действие везде одно и тоже.
Ну и важное дополнение, в каждой книге несколько листов с теми же таблицами, но с разными данными, которыми так же нужно будет заполнять пустой шаблон.
Или может быть у вас будут советы как эту процедуру можно облегчить каким то другим путем
В приложении пример шаблона и 1 книги откуда будут браться данные
Мысль вот возникла, может быть можно как-то, вместо пути к файлам, вписать условие типа ( если заданный путь не найден, то использовать открытые). В имени каждого файла есть свой уникальный номер и идентификатор(01, 02, 03, 04 -в начале, и БТИ, Вода, Газ -в конце, может к нему как то можно привязаться

Очень надеюсь на Вашу помощь, хотябы узнать насколько это осуществимо.
Спасибо за Внимание!
К сообщению приложен файл: 1062265.xlsx (75.3 Kb) · 01_1_-_.xlsx (76.3 Kb)


Сообщение отредактировал Balrock - Среда, 11.09.2013, 21:15
 
Ответить
СообщениеПриветствую ! В краце опишу ситуацию с которой никак не получается разобраться самостоятельно.
Сразу подчеркну, что Все книги в абсолютно одинаковой форме.
форма такая

№п/п, наименование, Единицы измерения, информация

Изменяться будут только 3 и 4 столбцы

Имеется:
-1 книга - пустой шаблон с пустыми 3 и 4 столбцами
-7 книг - в которых частично заполнены 3 и 4 столбец

С помощью записи макроса, я копировал нужные мне столбцы из всех 7 книг и специальной вставкой с нужным мне форматированием(чтобы менялись только данные, и пропускались пустые строчки) вставлял их в пустой шаблон.

Таблица наполняется, никаких проблем.
НО, в макрос прописываются пути к требуемым книгам, а у меня таких шаблонов около 5 тысяч, к которым нужно применить этот же макрос.

Вопрос, реально ли сделать так, чтобы макрос срабатывал на уже открытые книги, а не привязывался к пути. Действие везде одно и тоже.
Ну и важное дополнение, в каждой книге несколько листов с теми же таблицами, но с разными данными, которыми так же нужно будет заполнять пустой шаблон.
Или может быть у вас будут советы как эту процедуру можно облегчить каким то другим путем
В приложении пример шаблона и 1 книги откуда будут браться данные
Мысль вот возникла, может быть можно как-то, вместо пути к файлам, вписать условие типа ( если заданный путь не найден, то использовать открытые). В имени каждого файла есть свой уникальный номер и идентификатор(01, 02, 03, 04 -в начале, и БТИ, Вода, Газ -в конце, может к нему как то можно привязаться

Очень надеюсь на Вашу помощь, хотябы узнать насколько это осуществимо.
Спасибо за Внимание!

Автор - Balrock
Дата добавления - 11.09.2013 в 15:11
Michael_S Дата: Среда, 11.09.2013, 17:33 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Не совсем понятна постановка задачи, но вполне реально перебрать все файлы в определенной папке. С открытыми файлами сложнее - вроде бы они должны быть открыты в одном процессе Excel. Но точно не помню.
 
Ответить
СообщениеНе совсем понятна постановка задачи, но вполне реально перебрать все файлы в определенной папке. С открытыми файлами сложнее - вроде бы они должны быть открыты в одном процессе Excel. Но точно не помню.

Автор - Michael_S
Дата добавления - 11.09.2013 в 17:33
SkyPro Дата: Среда, 11.09.2013, 17:49 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Перебор всех открытых книг эксель можно так сделать:
[vba]
Код
Sub sdsd()
Dim i&
For i = 1 To Workbooks.Count
Debug.Print Workbooks(i).Name
Next
End Sub
[/vba]
Цитата
вроде бы они должны быть открыты в одном процессе Excel

У меня сейчас нет возможности проверить, но, думаю что вышеуказанным способом переберет ВСЕ открытые книги.


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Среда, 11.09.2013, 17:51
 
Ответить
СообщениеПеребор всех открытых книг эксель можно так сделать:
[vba]
Код
Sub sdsd()
Dim i&
For i = 1 To Workbooks.Count
Debug.Print Workbooks(i).Name
Next
End Sub
[/vba]
Цитата
вроде бы они должны быть открыты в одном процессе Excel

У меня сейчас нет возможности проверить, но, думаю что вышеуказанным способом переберет ВСЕ открытые книги.

Автор - SkyPro
Дата добавления - 11.09.2013 в 17:49
Michael_S Дата: Среда, 11.09.2013, 18:09 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Цитата (SkyPro, Среда, 11.09.2013, 17:49 # 3)
У меня сейчас нет возможности проверить,

Проверил. Из пяти открытых перебрал только две - которые в одном процессе. 2013.
 
Ответить
Сообщение
Цитата (SkyPro, Среда, 11.09.2013, 17:49 # 3)
У меня сейчас нет возможности проверить,

Проверил. Из пяти открытых перебрал только две - которые в одном процессе. 2013.

Автор - Michael_S
Дата добавления - 11.09.2013 в 18:09
SkyPro Дата: Среда, 11.09.2013, 18:14 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
Цитата (Michael_S, Среда, 11.09.2013, 18:09 # 4)
Из пяти открытых перебрал только две - которые в одном процессе. 2013.

Тогда оптимальный вариант - перебор книг из папки.
Вот тут очень хорошие решения: http://www.excel-vba.ru/chto-umeet-excel/prosmotret-vse-fajly-v-papke/


skypro1111@gmail.com
 
Ответить
Сообщение
Цитата (Michael_S, Среда, 11.09.2013, 18:09 # 4)
Из пяти открытых перебрал только две - которые в одном процессе. 2013.

Тогда оптимальный вариант - перебор книг из папки.
Вот тут очень хорошие решения: http://www.excel-vba.ru/chto-umeet-excel/prosmotret-vse-fajly-v-papke/

Автор - SkyPro
Дата добавления - 11.09.2013 в 18:14
Balrock Дата: Среда, 11.09.2013, 18:28 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо за ответы, буду сейчас пробовать, а с листами будет проблема? если я буду выполнять макрос например на втором листе
 
Ответить
СообщениеСпасибо за ответы, буду сейчас пробовать, а с листами будет проблема? если я буду выполнять макрос например на втором листе

Автор - Balrock
Дата добавления - 11.09.2013 в 18:28
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выполнение макроса с обращением к нескольким книгам (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

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