![]() |
|
Модераторы: mihanik |
![]()
|
|
| Tsinarski |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2007 Репутация: нет Всего: нет |
кто небудь может помочь со скриптом макроса ?
мне надо чтоб автоматический с одного Exel файла информация копировалась в другую если не затруднит пожалусто ответте |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
Насколько автоматически? Если по одной простой команде пользователя (например, нажите кнопки), то просто:
Если совсем автоматически, то объясни, в какой момент должно происходить копирование... -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| mihanik |
|
|||
![]() -=Белый Медведь=- ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 4054 Регистрация: 24.4.2006 Где: г. Тверь Репутация: 9 Всего: 109 |
Модератор:
Tsinarski, не надо плодить темы!!! Если вдруг случилось так, что создал тему не там, то обратись к модерам или комодерам... |
|||
|
||||
| Tsinarski |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2007 Репутация: нет Всего: нет |
Мне нужно сделать маленкий макрос который будет с нескольких файлов Exel копировать данные в один,
то-есть у меня проблемма такая много Exel файлов у которых по 2 листа преходется соберать всё в один Exel фаил с помощью копирования (мне это приходется делть часто, exel фаилы вынемаются из базы данных автоматический "ведётся статистика" у етих файлов постоянно одинаковые имена "у всех разные") мне хочется найти путь патом я сам создаду такой документ (нужен скрипт который будет копировать информацию с одного Exel файла в другой) если можите помогите плиз ато у меня очень много времени занемает копирование (в vb немного я тоже баловатся умею но я не програмист и не смог до токого скрипта додуматся) Добавлено через 9 минут и 26 секунд ребята плиз не удоляйте тему мне уже ктото решил помочь дайте моей теме реализоватся ведь людям exelочень часто нужен и многие интересуются с темами макросав |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
У меня дома экселя нет, а на память я не помню. Делай так: в меню "сервис" находишь режим записи макроса, включаешь запись, потом кликаешь правой кнопкой на названии листа, выбираешь "Копировать/переместить", выбираешь книгу экселя, жмешь "ОК", потом останавливаешь запись макроса и смотришь, что он поназаписал. Потом делаешь так:
Эта незатейливая функция скопирует все листы из всех книг в книгу "Отчет". Если будут вопросы - пиши сюда. P. S. И пиши грамотно, а то сообщения в почти "падонак-стайл" тяжело читаются и не всегда понятно, чего человек вообще хочет... Это сообщение отредактировал(а) RockClimber - 13.6.2007, 23:37 -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| Tsinarski |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2007 Репутация: нет Всего: нет |
ребята спасибо за то что помогаите
скрипт который преслали он работаен но есть проблемма, после того как я сохраняю фаил он перестоёт работать Workbooks("Книга1").Sheets("Лист1").Range("A1:D10").Copy Destination:=Workbooks("Книга2").Sheets("Лист2").Range("E1:H10") |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
А подробнее? С каким именем сохраняешь? После сохранения закрываешь? Если хотя бы один ответ будет "да", то так и должно быть...
-------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| Tsinarski |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2007 Репутация: нет Всего: нет |
И так
Workbooks("Книга1").Sheets("Лист1").Range("A1:D10").Copy Destination:=Workbooks("Книга2").Sheets("Лист2").Range("E1:H10") тут ясно видны имена фаилов, то-есть по умолчанию Книга1, Книга2 вот я сохраняю эти фаилы по умолчанию с этими же именами, просто программа перестаёт работать после сохронения, не понятно в чём дело до сохронение всё работает как по маслу. Стрнно всё это выглядет, я даже подумал а вдруг до сохронение всё работает в буфере а после сохронение программа наченает требовать конкретные маршруты етих файлов типо C:\Documents and Settings\dnanobashvili\Desktop\1, но если да, то как указывать и куда встовлять путь маршрута? |
|||
|
||||
| dionisiu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: 1 Всего: 2 |
Стоп.
тут может быть такая фишка: в "Книга1" в указаном диапазоне могут быть ссылки на лист2, например, или ссылки за пределы диапазона. Тогда эксель при переносе в новую книгу пропишет (перепишет) ссылки из Книга2 на Книга1, и открыв книгу2 будет требовать обновления ссылок. Вас не затруднит взять пару книг с исходными данными, а также книгу, куда это вставлять, удалить из них персональную информацию (типа имена, названия, адреса) - оставить только цифры и заменяющие персональные данные спецслова (Вместо клиентов Иванов, Петров, Сидоров вставить Клиент1, Клиент2, Клиент3, вместо названий товаров типа "Печенье топлёное", "Консерва Тунец", "Водка Крепкая" ввести Товар1, Товар2, Товар3 и так далее...) и выложить на форум в архиве (тут можно до 120к за-раз приложить) с инструкцией: что, из какой книги, с какого листа, при каких условиях и в какую ячейку отчёта вставлять. по поводу имён файлов исходников: я так понимаю, что есть набор файлов (Прайс1, Список2, Маршрут3...), который генерируется в Акцесе, но каждый из этих файлов всегда сохраняется именно с таким именем, и не зависит от прочих условий (типа Прайс2007_06_16 сегодня, а завтра Прайс2007_06_16). Если имена файлов и места их "хранения" стабильны, то можно и вовсе обойтись без макросов, через функции СУММЕСЛИ() - у меня такое работает на нескольких отчётах (в прайс загоняются остатки из 1С, в отчёт для центрального офиса - данные о продажах, при этом никаких макросов, уже два года работает) RockClimber,
просто для автора русский язык, видимо, не является родным. Кстати, от "падонкаф" автор выгодно отличается отсутствием грубости |
|||
|
||||
| Tsinarski |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2007 Репутация: нет Всего: нет |
Это фаил автоматического получения из базы
у него 2 листа мне приходится сначало копировать 1 лист встовлять в фаил в другой фаил обшая статистика патом второй лист и опять встовлять чтоб вся информация собералась в одном фаиле, таких фаилов несколько сотен согласитесть очень трудоёмкая работа и эта ерунда отнемает уймо времени просто на работе требуют чтоб именно так и делалась обшая статистика (работаю я в сотовой компание которая в процесе стройки, виду мониторинг базавых станции и вконце недели преходится проверять нагрузки на секторы). Живу в Грузие меня Гиоргий зовут спасибо за поддержку ребята! Присоединённый файл ( Кол-во скачиваний: 3 )
statistika.rar 9,51 Kb |
|||
|
||||
| Tsinarski |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2007 Репутация: нет Всего: нет |
||||
|
||||
| Tsinarski |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2007 Репутация: нет Всего: нет |
||||
|
||||
| Tsinarski |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2007 Репутация: нет Всего: нет |
3 опять копирую с принятого файла диаграму уже со второго листа и втовляю в обшуб статистику
Присоединённый файл ( Кол-во скачиваний: 6 )
3.jpg 86,88 Kb |
|||
|
||||
| dionisiu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: 1 Всего: 2 |
Как я и говорил - копирование в новую книгу загоняет связи, а не данные. Причём связи тянутся не по формулам, а за диаграммами.
Два варианта: Или рисовать диаграмму макросом и тянуть только листы с данными, или в статистике единожды нарисовать диаграмму, привязав её к некой таблице, где прописать ссылки на соответствуюшие файлы (можно и через кнопку, куда повесить последовательное открытие нужных файлов, выборку числовых данных с первого листа и закрытие исходников). Из Вашего описания последовательности работ и файлов исходных данных следует примерно следующее: 1. Есть некая база на акцессе, которая каким-то образом собирает данные, при этом способна генерировать файлы с таблицей и диаграмой, причём имя файла стабильно, однако, одной точке снятия данных соответствует несколько файлов, которые нужно различать по ключевому слову seqtor и номеру за ним (парадокс - а зачем делать внешний обработчик, если можно сделать в самом акцессе лишнюю кнопку по выводу общей статистики?) 2. Сгенерированные файлы лежат в некоторой стабильно определённой папке (видимо, в документах текущего пользователя) (судя по приведённому пути) 3. За неделю файлов собирается очень много. Тут не понятно: вроде в файле перечислены дни недели, в выложенном примере даны файлы одной точки по трём секторам (насколько мне хватает познаний в сотовой связи - секторов должно быть 4), а в статитстике сбор по 4-м точкам (или это урезанная версия для примера?) 4. Данные из файла точки, сектора1 нужно расположить вверху соответствующего листа статистики, из сектора 2 - немного ниже, из сектора 3 - ещё ниже и так далее..., при этом формат диаграммы остаётся тем же. я правильно понял Вашу задачу? |
|||
|
||||
| Tsinarski |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 10.6.2007 Репутация: нет Всего: нет |
dionisiu, не обязательно 4 сектора обычно ставят 3 сектора на каждой базавой станцые но это не стандарт иногда устонавливают 2 или 4 в зависимости от вероятной нагрузки на базавую станцию в радиусе его деяствия, эти фаилы не берутся с ексел там стоит специальная программа солярис которая постовляется с апаратурог алкател, она при запросе выдают данные нагрузки заданого интервала времени на секторы с именами бызовых стании где устоновлен сектор к примеру bumajnajafabrika-sector1.xls, bumajnajafabrika-sector2.xls в ексел фаилах для каждого сектора 1 фаил (ну то что я преслал это был пример я там вручную эти фаилы сделал наверно неправильно) просто для меня главное соорудить скрипт для ексал для сбора всех етих фаилов в 1 ексел фаил, понемаю наверно это какимто мазохизмом кажется
|
|||
|
||||
| dionisiu |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: 1 Всего: 2 |
Вроде стало понятней. Вижу два варианта:
1. (ПРОСТЕЙШИЙ): сделать один раз файл "Общая статистика", в нём листы на каждую базовую станцию, на каждом листе в соответствии с количеством секторов сделать таблицы и там же нарисовать соответствующие диаграммы. Далее, при открытых файлах исходных данных входим в нужные ячейки таблицы, жмём "равно", переходим к нужному файлу станции (с учётом сектора), там ставим курсор на такую же ячейку таблицы, жмём "Enter" - получили связь с файлом. Так делаем для каждой ячейки каждой таблицы каждого файла. Далее, идём Сервис/Параметры/вкладка Правка. Здесь удаляем галочку с пункта "Запрашивать об обновлении автоматических связей". Потом идём меню Правка/Связи, жмём слева внизу кнопку "Запрос на обновление связи", выбираем "Не задавать вопрос и обновлять связи". Сохраняем книгу. Примечание: Книги исходных файлов должны иметь стабильные имена и строго определённый путь хранения. То есть, если есть необходимость накапливать информацию для архива, то при условии хранения файлов в каталоге : C:\Documents and Settings\dnanobashvili\Desktop\1, там нужно создать каталог "Архив", куда перемещать устаревшие файлы, а новые ложить именно по этому пути. Дальнейшая работа будет заключаться для Вас в следующем: Запросить из оборудования файлы, переместить их в нужный каталог (предварительно, при необходимости, заархивировав старые), открыть их все одновременно, потом открыть файл "Общая статистика", выбрать Правка/Связи/Обновить, книгу сохранить, исходники закрыть. 2.(СЛОЖНЕЕ): сделать то же самое, но с включённым макрорекордером, однако после того, как из ячейки таблицы Статистики будет создана ссылка на файл исходников, нужно будет скопировать эту ячейку и вставить туда же, но через СпецВставку/Значения - это разорвёт связь с книгой. Так же при работе этого макроса будет необязательно строгое соответствие маршрута хранения данных, важно, чтоб при его запуске были открыты исходники, и они имели стабильные имена. После прохода по всем книгам всех станций и всех секторов, можно остановить макрорекордер и почистить его код на предмет удаления явно лишних деталей (он записывает подряд даже смещения окна просмотра, типа так:
Вот как раз эти скроллы и нужно удалить, так как они приводят к излишней "иллюминации" процесса и дико тормозят работу. 3. (ЕЩЕ СЛОЖНЕЕ) В файле "Общаяя статистика" завести лист с перечнем базовых станций, количеством секторов на них, именами файлов (первая часть имени, без ключевого слова seqtor), каталогом хранения. Далее, на этом же листе забабахать кнопку, в её коде написать процедуру со следующей логикой: 1. Прочитать с листа и загрузить в массив имена базовых станций, количество секторов на каждой, названия файлов. 2. прочитать с листа путь к каталогу 3. перейти в каталог 4. прочитать содержимое каталога, сравнить имена файлов со списком, просчитать количество секторов: При нехватке файлов выдать предупреждение о невозможности работы (если не сформирован файл по третьему сектору БумажнойФабрики, то работать невозможно), при избытке файлов выдать предупреждение, что данных слишком много (вот поставили Вы новую станцию, а в список внести забыли, или у старой станции новый сектор добавился). 5. При отсутствии файлов прекратить работу, при избытке прекратить работу (каталог желательно держать чистым от посторонней информации), при совпадении количества продолжить работу. 6. последовательно открыть все файлы. 7. проверить в "Общей Статистике" существование листов с именами станций:Если есть - удалить 8. Создать листы с именами базовых станций. 9. перенести данные с листов исходников (по конкретной базовой станции по секторам в порядке очереди) на соответствующий лист (можно любой вариант: от прямого копирования области до по-ячеечного переноса значений) 10 нарисовать диаграммы (можно потренироваться в макрорекордере) 11. последовательно закрыть все книги, общую статистику сохранить. |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |