Добрый день, коллеги. Не получается реализовать следующий алгоритм работы с файлами: Дано: Файлы с разными именами каждый файл имеет некую форму требующую заполнения. макрос в файлах копирует лист в этот же файл, удаляет лишнее и переименовывает его в зависимости от значения в одной из ячейки таких листов в файлах может быть разное количество Требуется: Собрать все листы в один общий файл исключая листы с формами из файлов доноров. В общем файле прицепить к каждому листу кнопку "согласовано", "не согласовано" соответственно сохранить в таблицу, удалить.
Во вложении файл в котором я проводил тренировки Спасибо за любую помощь.
Добрый день, коллеги. Не получается реализовать следующий алгоритм работы с файлами: Дано: Файлы с разными именами каждый файл имеет некую форму требующую заполнения. макрос в файлах копирует лист в этот же файл, удаляет лишнее и переименовывает его в зависимости от значения в одной из ячейки таких листов в файлах может быть разное количество Требуется: Собрать все листы в один общий файл исключая листы с формами из файлов доноров. В общем файле прицепить к каждому листу кнопку "согласовано", "не согласовано" соответственно сохранить в таблицу, удалить.
Во вложении файл в котором я проводил тренировки Спасибо за любую помощь.sharipovsergei
блин, ну как не похоже, вот с чем нужно конкретно помочь? Собрать все листы в один файл? Или поместить кнопку на лист, а ещё нужно написать макрос который будет выполнять какие-то действия, по нажатию этой кнопки. Опять же возникает куча вопросов, как собирать все листы, по отдельности или все на один лист. Сколько будет этих файлов доноров, где они будут расположены, какие листы не должны копироваться. В приложенном файле тоже неразбериха, макросы, скорее всего, работают не так как нужно, их тоже редактировать? Это всё нужно выяснять. Я не работаю в платных разделах, но как по мне, тут точно комплекс работ, причем больше работы будет с ТС, что бы понять для чего ему это нужно. Ну а в качестве любой помощи, могу посоветовать копировать листы не в тот же файл, а на каждую карточку создавать отдельный файл с определённым именем в специальную папку, откуда потом их можно собирать, или открывать для просмотра, согласования, редактирования и т.д. И тогда файл-шаблон не будет пухнуть и будет формироваться архив карточек. Возможно, как один из вариантов, в управляющем файле можно будет обойтись гиперссылками. Кнопку согласовано не согласованно можно сразу вешать при выгрузке этих карточек, а можно обойтись без кнопок, а отправлять карточки в разные папки (одна папка согласованно, вторая несогласованно) из управляющего файла. Просто я к чему веду, чтобы помочь, ТС должен понимать, что именно он хочет в чем нужна помощь.
блин, ну как не похоже, вот с чем нужно конкретно помочь? Собрать все листы в один файл? Или поместить кнопку на лист, а ещё нужно написать макрос который будет выполнять какие-то действия, по нажатию этой кнопки. Опять же возникает куча вопросов, как собирать все листы, по отдельности или все на один лист. Сколько будет этих файлов доноров, где они будут расположены, какие листы не должны копироваться. В приложенном файле тоже неразбериха, макросы, скорее всего, работают не так как нужно, их тоже редактировать? Это всё нужно выяснять. Я не работаю в платных разделах, но как по мне, тут точно комплекс работ, причем больше работы будет с ТС, что бы понять для чего ему это нужно. Ну а в качестве любой помощи, могу посоветовать копировать листы не в тот же файл, а на каждую карточку создавать отдельный файл с определённым именем в специальную папку, откуда потом их можно собирать, или открывать для просмотра, согласования, редактирования и т.д. И тогда файл-шаблон не будет пухнуть и будет формироваться архив карточек. Возможно, как один из вариантов, в управляющем файле можно будет обойтись гиперссылками. Кнопку согласовано не согласованно можно сразу вешать при выгрузке этих карточек, а можно обойтись без кнопок, а отправлять карточки в разные папки (одна папка согласованно, вторая несогласованно) из управляющего файла. Просто я к чему веду, чтобы помочь, ТС должен понимать, что именно он хочет в чем нужна помощь.msi2102
Сообщение отредактировал msi2102 - Пятница, 30.09.2022, 18:54
msi2102, привет. В общем, делаю для себя, оптимизирую работу и параллельно изучаю ВБА. У меня есть несколько объектов недвижимости (не лично у меня, я наемный инженер по эксплуатации), на каждом объекте есть управляющий, для них по каждой базе планируется отдельный файл с такой карточкой-бланком и для инженера отдельный файл, а также для главного энергетика, то есть по каждому объекту 3 файла. Мне нужно собрать все данные от 25 объектов, соответственно 25х3 файлов с определенными именами в один, затем, хочу при защите бюджета просто нажатием кнопки согласовано, что-бы данные попадали в таблицу. Мне не нужно прям целиком код, хоть немного направить, подсказать, вообще это возможно? Я сам пытаюсь разобраться, но немного не дотягиваю. Файлы планируется хранить в одном и том же месте на сервере с неизменными именами. В файле, который я приложил, код работает, но та часть, которая просто копирует листы в этом же файле, сохраняя карточки, я сам его писал.
msi2102, привет. В общем, делаю для себя, оптимизирую работу и параллельно изучаю ВБА. У меня есть несколько объектов недвижимости (не лично у меня, я наемный инженер по эксплуатации), на каждом объекте есть управляющий, для них по каждой базе планируется отдельный файл с такой карточкой-бланком и для инженера отдельный файл, а также для главного энергетика, то есть по каждому объекту 3 файла. Мне нужно собрать все данные от 25 объектов, соответственно 25х3 файлов с определенными именами в один, затем, хочу при защите бюджета просто нажатием кнопки согласовано, что-бы данные попадали в таблицу. Мне не нужно прям целиком код, хоть немного направить, подсказать, вообще это возможно? Я сам пытаюсь разобраться, но немного не дотягиваю. Файлы планируется хранить в одном и том же месте на сервере с неизменными именами. В файле, который я приложил, код работает, но та часть, которая просто копирует листы в этом же файле, сохраняя карточки, я сам его писал.sharipovsergei
sharipovsergei, Вы не услышали меня. Я Вам ещё раз советую, не копировать Ваши карточки в этот-же файл, от этого файл будет пухнуть, будут допускаться ошибки и т.п. Копируйте карточку в специальную папку, с правильным именем карточки (например: "Адрес_Дата_№"), с которым будут работать инженер и энергетик, после его согласования он должен переноситься в другую папку, например название папки "согласованно". Можно завести лист согласований, из которого будет выполняться эта операция, можно придумать множество решений, даже вполне рабочий Ваш вариант с кнопками "Согласованно" в самой карточке. Но если всё-таки Вам нужно именно копирование листов из этих книг, то почитайте ТУТ
sharipovsergei, Вы не услышали меня. Я Вам ещё раз советую, не копировать Ваши карточки в этот-же файл, от этого файл будет пухнуть, будут допускаться ошибки и т.п. Копируйте карточку в специальную папку, с правильным именем карточки (например: "Адрес_Дата_№"), с которым будут работать инженер и энергетик, после его согласования он должен переноситься в другую папку, например название папки "согласованно". Можно завести лист согласований, из которого будет выполняться эта операция, можно придумать множество решений, даже вполне рабочий Ваш вариант с кнопками "Согласованно" в самой карточке. Но если всё-таки Вам нужно именно копирование листов из этих книг, то почитайте ТУТmsi2102
msi2102, спасибо огромное, да, это не плохой вариант.
А если рассматривать вариант из примера, но без диалогового окна, а сбор данных из конкретных имеющихся файлов, то есть, файлы уже с определенными именами и лежат в определенных папках в строгой архитектуре.
msi2102, спасибо огромное, да, это не плохой вариант.
А если рассматривать вариант из примера, но без диалогового окна, а сбор данных из конкретных имеющихся файлов, то есть, файлы уже с определенными именами и лежат в определенных папках в строгой архитектуре.sharipovsergei
Я Вам набросал примерно как-бы это могло бы выглядеть На диске C создайте папку "C:\Temp\" в это папке ещё две папки "C:\Temp\Согласованно\" и "C:\Temp\На_доработку\" Запускайте приложенные файлы. "Проба.xlsm" файл который заполняют управляющий. После нажатия кнопки "Выгрузка" лист Шаблон сохраняется, как отдельный файл в папке "C:\Temp\". Перейдите к файлу "Инженер.xlsm" нажмите кнопку "Обновить". В таблице появится название файла с гиперссылкой, статус, и его путь. Нажимаем на гиперссылку, откроется этот файл "C:\Temp\Имя_файла" у которого будет две кнопки "Согласованно" и "На доработку". По нажатию кнопки согласованно, файл перенесется в папку "Согласованно" в формате ".xlsx", и установится пароль на изменения листа (1111), т.к. уже согласованно и не должно быть никаких изменений. Если будет нажата кнопка "На доработку", то файл переместится в папку "На_доработку" и появится одна кнопка "Выгрузить". После коррекции данных в Файле управляющим он жмет кнопку "Выгрузить" и этот файл вновь перемещается в папку "C:\Temp\". Если в файле "Инженер" нажать "обновить", то Вы увидите все изменения.
А если рассматривать вариант из примера, но без диалогового окна, а сбор данных из конкретных имеющихся файлов
Я думаю с этим Вы сами сможете разобраться PS Переименуйте файлы: файл с листом ССЫЛКИ это "Инженер.xlsm", а файл с листом "Шаблон" это "Проба.xlsm"
Я Вам набросал примерно как-бы это могло бы выглядеть На диске C создайте папку "C:\Temp\" в это папке ещё две папки "C:\Temp\Согласованно\" и "C:\Temp\На_доработку\" Запускайте приложенные файлы. "Проба.xlsm" файл который заполняют управляющий. После нажатия кнопки "Выгрузка" лист Шаблон сохраняется, как отдельный файл в папке "C:\Temp\". Перейдите к файлу "Инженер.xlsm" нажмите кнопку "Обновить". В таблице появится название файла с гиперссылкой, статус, и его путь. Нажимаем на гиперссылку, откроется этот файл "C:\Temp\Имя_файла" у которого будет две кнопки "Согласованно" и "На доработку". По нажатию кнопки согласованно, файл перенесется в папку "Согласованно" в формате ".xlsx", и установится пароль на изменения листа (1111), т.к. уже согласованно и не должно быть никаких изменений. Если будет нажата кнопка "На доработку", то файл переместится в папку "На_доработку" и появится одна кнопка "Выгрузить". После коррекции данных в Файле управляющим он жмет кнопку "Выгрузить" и этот файл вновь перемещается в папку "C:\Temp\". Если в файле "Инженер" нажать "обновить", то Вы увидите все изменения.
А если рассматривать вариант из примера, но без диалогового окна, а сбор данных из конкретных имеющихся файлов
Я думаю с этим Вы сами сможете разобраться PS Переименуйте файлы: файл с листом ССЫЛКИ это "Инженер.xlsm", а файл с листом "Шаблон" это "Проба.xlsm"msi2102
Требуется: Собрать все листы в один общий файл исключая листы с формами из файлов доноров. В общем файле прицепить к каждому листу кнопку "согласовано", "не согласовано" соответственно сохранить в таблицу, удалить.
Чем не ТЗ. Так ещё и нет конкретного понимания, что именно надо :facepalm:
Требуется: Собрать все листы в один общий файл исключая листы с формами из файлов доноров. В общем файле прицепить к каждому листу кнопку "согласовано", "не согласовано" соответственно сохранить в таблицу, удалить.
Чем не ТЗ. Так ещё и нет конкретного понимания, что именно надо :facepalm:msi2102
а Вы открывали этот файл? Это исходные данные для работы, а не его пробы и ошибки по тем вопросам которые он задаёт. Дело в том, что я абсолютно не против помочь, я даже двумя руками ЗА, но было бы понятно с чем помогать. Ну написал бы просто: "Помогите собрать определенные листы из нескольких файлов в один". Да понятно, что именно нужно. А спасибо за любую помощь, это элементарная вежливость. К тому же
а Вы открывали этот файл? Это исходные данные для работы, а не его пробы и ошибки по тем вопросам которые он задаёт. Дело в том, что я абсолютно не против помочь, я даже двумя руками ЗА, но было бы понятно с чем помогать. Ну написал бы просто: "Помогите собрать определенные листы из нескольких файлов в один". Да понятно, что именно нужно. А спасибо за любую помощь, это элементарная вежливость. К тому же
Коллеги, ТЗ, не ТЗ. Вопрос скорее к возможностям ВБА и общей методики реализации. Я совсем не программист. Я простой инженер по эксплуатации задний и сооружений (могу доказать ). Есть простая задача от руководства, собирать все данные от нескольких объектов, затем на совещании по защите тех или иных работ, просматривая задачи, уже коллегиально, принимается решение "делаем", "не делаем". Сейчас это реализовано вручную. Есть один файл с таблицей и там вносят работы все кому не лень. Как писал выше управляющие и инженеры (эксплуатация). "Языки" на котором говорят управляющие и инженеры, разные, более того, некоторые инженеры пишут такое, что дойдя до защиты вообще не понятно кто что имеет ввиду. Можно продолжать работать вручную, обзванивать всех, уточнять, требовать фото, но я решил упростить себе задачу, начал с того, что сделал карточку, где довольно подробно можно расписать что имеется в виду (эти подробности нужны обязательно для обоснований). Карточки планирую хранить в течении от года (в соответствии со сроком реализации того или иного проекта). Например при смене инженера объекта любой может зайти в карточку и посмотреть, что конкретно подразумевалось под "ремонтом сети отопления". На карточках можно было бы остановиться и собирать карточки в таблицу вручную но я решил пойти дальше и подумал, а ВБА способен-ли собирать все автоматически. По этому я здесь. Весь функционал и возможности ВБА я еще не раскрыл. Скачал недавно некий ЁКСЕЛЬ (это целая вкладка написанная на ВБА каким-то хорошим человеком) Там реализована работа с файлами, папками и довольно не плохо реализована, пока пытаюсь разобраться как применить это к моему случаю. Результатом работы буду считать облегчение труда по сбору данных. Никакой финансовой выгоды не преследую. Если получится это реализовать, с удовольствием поделюсь бесплатно со всеми, кому подобная реализация будет нужна.
Как я вижу это: Файл - сводные данные лист 1 таблица (для финансистов) лист 2... и т.д. карточки
папка 1 объекта файл Гл.Инженера лист 1 БЛАНК лист 2 заявка 1 лист 3 заявка 2 ... файл Инженера объекта лист 1 БЛАНК лист 2 заявка 1 лист 3 заявка 2 ... файл Управляющего лист 1 БЛАНК лист 2 заявка 1 лист 3 заявка 2 ... Папка 2 объекта файл Гл.Инженера лист 1 БЛАНК лист 2 заявка 1 лист 3 заявка 2 ... файл Инженера объекта лист 1 БЛАНК лист 2 заявка 1 лист 3 заявка 2 ... файл Управляющего лист 1 БЛАНК лист 2 заявка 1 лист 3 заявка 2 ... Папка 2 объекта ... и т.д. Почему отдельные файлы каждому специалисту? При начале сбора данных в файлах работают все, а одновременная работа с файлами на сервере невозможна, при одновременной работе, сохранение происходит с изменением имени файла и, думаю, что это усложнит задачу по сбору всех данных в один файл.
В общем, не настаиваю ни на чем. Спасибо за все предыдущие советы. Воспользуюсь. P.S. еще подсказали интересную мысль - обратить внимание на "Гугл формы", сегодня посмотрю как это можно реализовать частично через них. Есть ли возможность выгрузки в эксель.
Коллеги, ТЗ, не ТЗ. Вопрос скорее к возможностям ВБА и общей методики реализации. Я совсем не программист. Я простой инженер по эксплуатации задний и сооружений (могу доказать ). Есть простая задача от руководства, собирать все данные от нескольких объектов, затем на совещании по защите тех или иных работ, просматривая задачи, уже коллегиально, принимается решение "делаем", "не делаем". Сейчас это реализовано вручную. Есть один файл с таблицей и там вносят работы все кому не лень. Как писал выше управляющие и инженеры (эксплуатация). "Языки" на котором говорят управляющие и инженеры, разные, более того, некоторые инженеры пишут такое, что дойдя до защиты вообще не понятно кто что имеет ввиду. Можно продолжать работать вручную, обзванивать всех, уточнять, требовать фото, но я решил упростить себе задачу, начал с того, что сделал карточку, где довольно подробно можно расписать что имеется в виду (эти подробности нужны обязательно для обоснований). Карточки планирую хранить в течении от года (в соответствии со сроком реализации того или иного проекта). Например при смене инженера объекта любой может зайти в карточку и посмотреть, что конкретно подразумевалось под "ремонтом сети отопления". На карточках можно было бы остановиться и собирать карточки в таблицу вручную но я решил пойти дальше и подумал, а ВБА способен-ли собирать все автоматически. По этому я здесь. Весь функционал и возможности ВБА я еще не раскрыл. Скачал недавно некий ЁКСЕЛЬ (это целая вкладка написанная на ВБА каким-то хорошим человеком) Там реализована работа с файлами, папками и довольно не плохо реализована, пока пытаюсь разобраться как применить это к моему случаю. Результатом работы буду считать облегчение труда по сбору данных. Никакой финансовой выгоды не преследую. Если получится это реализовать, с удовольствием поделюсь бесплатно со всеми, кому подобная реализация будет нужна.
Как я вижу это: Файл - сводные данные лист 1 таблица (для финансистов) лист 2... и т.д. карточки
папка 1 объекта файл Гл.Инженера лист 1 БЛАНК лист 2 заявка 1 лист 3 заявка 2 ... файл Инженера объекта лист 1 БЛАНК лист 2 заявка 1 лист 3 заявка 2 ... файл Управляющего лист 1 БЛАНК лист 2 заявка 1 лист 3 заявка 2 ... Папка 2 объекта файл Гл.Инженера лист 1 БЛАНК лист 2 заявка 1 лист 3 заявка 2 ... файл Инженера объекта лист 1 БЛАНК лист 2 заявка 1 лист 3 заявка 2 ... файл Управляющего лист 1 БЛАНК лист 2 заявка 1 лист 3 заявка 2 ... Папка 2 объекта ... и т.д. Почему отдельные файлы каждому специалисту? При начале сбора данных в файлах работают все, а одновременная работа с файлами на сервере невозможна, при одновременной работе, сохранение происходит с изменением имени файла и, думаю, что это усложнит задачу по сбору всех данных в один файл.
В общем, не настаиваю ни на чем. Спасибо за все предыдущие советы. Воспользуюсь. P.S. еще подсказали интересную мысль - обратить внимание на "Гугл формы", сегодня посмотрю как это можно реализовать частично через них. Есть ли возможность выгрузки в эксель.sharipovsergei