Страницы: 1 2 След.
RSS
Для выполнения макроса убрать необходимость наличия открытой книги Эксель
 
     Здравствуйте, народ.
    У меня, для примера, имеются три книги Эксель: Лист Microsoft Office Excel; Лист Microsoft Office Excel (2); Лист Microsoft Office Excel (3) (файлы приложу). Имеется макрос (он работает, скачайте и откройте все три книге, и запустите макрос в книге с меньшим количеством данных (без фамилии). Макрос выполняет, то, что нужно. Но, чтобы он работал, должны быть обязательно запущены книги: Лист Microsoft Office Excel и Лист Microsoft Office Excel (2). Как сделать так, чтобы эти книги можно было не запускать для выполнения макроса?
  И ещё, макрос отказывается работать в четвёртой и более новых книгах? Как это исправить?
Изменено: экселист - 15.06.2015 13:54:18
 
Цитата
экселист написал: чтобы он работал, должны быть обязательно запущены книги
можно нужные книги открывать в скрытом режиме, выполнять нужные действия и закрывать их.
Цитата
экселист написал: макрос отказывается работать в четвёртой и более новых книгах
да он и с третьей-то не работает, там жестко прописана книга "Лист Microsoft Office Excel (2).xlsm"
Согласие есть продукт при полном непротивлении сторон
 
шаблон то одинаковый?
если да, то можно не открывать ЭТИ книги, а все делать в одной и пересохранять поднужными именами, но смысла не вижу.. зачем вообще нужны эти открытые книги?
Живи и дай жить..
 
Цитата
Sanja написал: да он и с третьей-то не работает
У меня работает, если книги "Лист Microsoft Office Excel.xlsm" и "Лист Microsoft Office Excel (2).xlsm" открыты.
Изменено: экселист - 15.06.2015 17:55:04
 
Цитата
Sanja написал: можно нужные книги открывать в скрытом режиме, выполнять нужные действия и закрывать их.
А как это сделать?

Цитата
Слэн написал: зачем вообще нужны эти открытые книги?
Вы вообще их открывали? макрос запускали? Если они не открыты - макрос не работает.

Цитата
Sanja написал: можно нужные книги открывать в скрытом режиме, выполнять нужные действия и закрывать их.
Кстати, мне не важно, откроются ли они скрыто или открыто. Надо, чтобы я их не открывал, а либо они сами открывались, либо вообще не открывались.
 
что вы потом с этими книгами делать будете? я понмаю, когда открывают книгу, берут из нее данные, а тут наоборот..

если вы поподробнее описали бы, может другой сопособ предложили.. щас пока единственный выход - открывать, записывать данные, сохранять(?).
Живи и дай жить..
 
Не понимаю вопроса? Вы видели, что делает макрос? Он ЗАПОЛНЯЕТ книгу "Лист Microsoft Office Excel (3).xlsm" (если его активировать в ней) некоторыми данными из книги "Лист Microsoft Office Excel (2).xlsm" ("Лист Microsoft Office Excel.xlsm" тоже должна быть открыта, но данные в ней для макроса те же, что и во второй). И вот  2 вопроса:
1. как сделать так, чтобы мне не надо было каждый раз вручную открывать первую и вторую книги?
2. как заставить макрос работать в 4-й и последующих книгах?
Вы меня извините, но мне не понятно, что Вам не понятно?
 
Цитата
экселист написал:
Он ЗАПОЛНЯЕТ книгу "Лист Microsoft Office Excel (3).xlsm" (если его активировать в ней) некоторыми данными из книги "Лист Microsoft Office Excel (2).xlsm"
да ничего подобного :)
макрос прописывает жестко определенные данные в жестко определенные ячейки  во все три книги, ничего не копирует, вы сами себя обманываете :)
Живи и дай жить..
 
Цитата
Слэн написал: макрос прописывает жестко определенные данные в жестко определенные ячейки  во все три книги, ничего не копирует, вы сами себя обманываете
Но данные он берёт из одной книги. Я писал макрос посредством "Записать макрос". Во время записи я копировал и вставлял нужные данные, а также форматы ячеек. И получился такой макрос. Пусть он Не копирует, но он вставляет в книгу данные, которые повторяются. Первые две книги изначально заполнены. 3-ю надо заполнить теми же данными и форматами (только теми, что в макросе прописаны)
Поясню. У меня на самом деле имеются отчёты КМ-6. Мне надо, чтобы макрос записывал повторяющиеся данные и форматы в каждый новый отчёт. Чтобы я каждый раз не вводил их вручную. В примере я привёл отчёты только с теми данными и форматами, которые повторяются (книга1 и книга2). Форматы в ячейках в столбце "Порядковый номер контрольного счетчика (отчета фискальной памяти) на конец рабочего дня (смены)" и строке "Смена". Мне нужно чтобы макрос при его запуске автоматически вставлял эти данные и форматы в другие такие отчёты (например книга3). Как это сделать?
Изменено: экселист - 15.06.2015 17:57:50
 
где вы копировали?

я и ожидал увидеть код типа    
Код
Selection.Copy
    Windows("Книга1").Activate
    ActiveSheet.Paste
Изменено: Слэн - 15.06.2015 15:50:39
Живи и дай жить..
 
Цитата
Слэн написал: где вы копировали?
Повтор\ю, я делал макрос через "Записать макрос" Копировал из одной книги и вставлял в другую. Но это не важно, так как
Цитата
экселист написал:
Поясню. У меня на самом деле имеются отчёты КМ-6. Мне надо, чтобы макрос записывал повторяющиеся данные и форматы в каждый новый отчёт. Чтобы я каждый раз не вводил их вручную. В примере я привёл отчёты только с теми данными и форматами, которые повторяются (книга1 и книга2). Форматы в ячейках в столбце "Порядковый номер контрольного счетчика (отчета фискальной памяти) на конец рабочего дня (смены)" и строке "Смена". Мне нужно чтобы макрос при его запуске автоматически вставлял эти данные и форматы в другие такие отчёты (например книга3). Как это сделать?
 
мало что понял.
но предположу - может быть, достаточно создать шаблон с настроенными форматами и "повторяющимися данными"?
а новый отчет создавать на основе этого шаблона.
и не придется вообще ничего никуда копировать.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Неа не пойдёт. Дело в том, что отчёт не создаётся в эксель, а выгружается в него из другой программы.  Поэтому его придётся править. Но некоторые данные и форматы, которых изначально нет в выгруженном отчёте, повторяются из отчёта в отчёт. Вот мне и нужно вставлять их в новые выгруженные отчёты не в ручную, а посредством макроса.
 
экселист, почему это не пойдёт? С уважаемым ikki согласен. Делал макрос, который накладные из 1С раскидывал по маршрутам, формировал два листа общих (Погрузка и ИТОГО) и два листа (Погруз.лист и ТТН) отдельно для каждого маршрута на основе шаблонных листов.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Как? Я их из 1с сразу сохраняю как файл эксель. \потом его правлю. Причём тут шаблоны?
Изменено: экселист - 15.06.2015 17:59:56
 
Экселист.
Скорее всего это задание можно решить проще.
Напишите, что Вы имеете в начале (приложите файлы), и что должно получиться в конце (приложите файлы).

Из того, что написано выше, мне не понятно, какой результат вам нужен.

UPD: Подробно напишите откуда вы берете данные для каждой ячейки.
Изменено: anvas - 15.06.2015 17:31:15
 
Цитата
anvas написал: мне не понятно, какой результат вам нужен
Вы не один такой здесь :)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Нужно обучать новичков некоторым паттернам формулирования тех.задания.
 
в Правилах всё написано.
само собой - не все их читают.
потому что чихать хотели на советы и рекомендации.
а потом темы вместо пары постов растягиваются на пару страниц.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Короче в начале имеем файлы "Лист Microsoft Office Excel.xlsm" и "Лист Microsoft Office Excel (3).xlsm" нужно чтобы в файле "Лист Microsoft Office Excel (3).xlsm" автоматически при нажатии на кнопку или ещё как, но не само, а если я указал экселю, заполнялись ячейки, как в файле "Лист Microsoft Office Excel.xlsm" (сравните файлы. Они отличаются тем, что в одном некоторые ячейки заполнены, а в другом - нет).
Файлы из программы 1С я сохраняю, как файл Эксель
 
Мда. Нужно менять саму процедуру работы с файлами.

UPD: Поскольку в вашем файле только Иванов. Рекомендую расположить его в удобном месте как шаблон и каждый раз делать с него копии.
В описанном Вами случае макросы не нужны.
Изменено: anvas - 15.06.2015 17:57:49
 
Цитата
anvas написал: Мда. Нужно менять саму процедуру работы с файлами.
Как? Если я в программе 1С Розница нажимаю Файл-Сохранить как - Лист эксель. Потом открываю этот лист эксель и правлю. Как мне иначе работать с файлом? Мне нужно автоматически проставлять повторяющиеся данные и форматы - так как каждый день - новый отчёт по тому же принципу. Часть данных повторяются, как в ранее сделанном. Надо их автоматически скопировать, а не вручную.
 
Данные заполняете одни и те же?
Или разные фамилии и т.п.?
 
Цитата
anvas написал: Поскольку в вашем файле только Иванов. Рекомендую расположить его в удобном месте как шаблон и каждый раз делать с него копии.
Не получится\ - так как я каждый раз НЕ создаю новый файл из самого эксель, а выгражаю его из 1С в ЭКСЕЛЬ. В этом случае никак не прикрепить к шаблону. То есть файл эксель СОЗДАЁТ ДРУГАЯ программа сама, а не я.  
 
Я, честно говоря, так и не понимаю, что автор вопроса хочет в итоге получить и из каких исходных данных.
Гораздо проще (я так думаю) было бы, если бы автор сказал нам нечто следующее:
"Отцы! Вот из 1С выгружаю путем сохранения в формате Excel отчет такой-то. Вот файл он какой исходный. А надо мне из него получить отчет немного другого вида в новом файле (вот другой файл, в котором показан конечный результат). Как?"

И  макросописатели вкогтились бы в задачу! :)
Кому решение нужно - тот пример и рисует.
 
anvas,
Да данные одни и те же (те, которые в файлах. Есть ещё данные, но они разнятся. Я привёл пример одинаковых данных - т.е. одна фамилия, модель ККМ и форматы указанных ячеек).
Во потому что я заполняю одни и те же данные, я и хочу автоматизировать этот процесс, а не каждый раз вбивать их вручную.
Изменено: экселист - 15.06.2015 18:05:36
 
Пытливый,
Я так и говорю. Выгружаю из 1С путем сохранения в формате Excel отчет КМ-6 исходный файл - Лист Microsoft Office Excel (3).xlsm (23.06 КБ) . Нужно чтобы он стал Лист Microsoft Office Excel.xlsm (28.74 КБ) Так понятно? Фамилии, номер и формат в столбце "Порядковый номер контрольного счетчика (отчета фискальной памяти) на конец рабочего дня (смены)" и формат в строке "Смена" всегда одни и те же.
 
Понятно.

Решение:
1. Попросите, чтобы Вам написали макрос, который вставит в определенные ячейки нужный вам текст (например, "Иванов И.И." и так далее).
2. Закройте все книги эксель.
3. Откройте книгу PERSONAL.XLSB, которая расположена по адресу похожему на мой: C:\Users\Anatoly\AppData\Roaming\Microsoft\Excel\XLSTART.
4. Запишите туда новый макрос, назовите его как-нибудь (например "Иванов").

Теперь он доступен Вам из любой книге при нажатии кнопок Alt + F8. Там он будет называться "Иванов". Запускаете его. Вуаля - и все готово.

UPD: При желании можно назначить быстрые клавиши, например Ctrl + ы.
Изменено: anvas - 15.06.2015 18:15:13
 
anvas, А я и прошу

Выгружаю из 1С путем сохранения в формате Excel отчет КМ-6 исходный файл - Лист Microsoft Office Excel (3).xlsm (23.06 КБ) . Нужно чтобы он стал Лист Microsoft Office Excel.xlsm (28.74 КБ). Фамилии, номер и формат в столбце "Порядковый номер контрольного счетчика (отчета фискальной памяти) на конец рабочего дня (смены)" и формат в строке "Смена" всегда одни и те же.
Лучше всего, как я понимаю, макросом, который вставит в определённые ячейки определённые значения и форматы.
 
Тогда выделите в готовом файле желтым цветом те ячейки, где вы что-то поменяли.
Страницы: 1 2 След.
Читают тему
Наверх