Товарищи! Возникла такая потребность: Нужно запретить изменять имя эксельевского файла. Расскажу подробнее для чего это нужно. Есть 300 объектов, территориально - далеко друг от друга стоящих. Начальники объектов знают как компьютер включать и как читать и отвечать на почту. Еженедельно они заполняют отчёт в экселевской форме и сбрасывают мне. Я должен свести 300 их отчётов в единую таблицу. Чтобы упросить себе жизнь, я сделал связи между файлами, так что мой сводный отчёт заполняется почти автоматически. Проблема в том, что каждый раз с объектов файлы приходят под разными именами. Чаще всего "копия АВС" или "АВС январь" или вовсе "пупкин". Взывать к совести начальников объектов, чтобы не переименовывали файлы - бесполезно. Нужно запретить изменять имя файла, отправить его по элетронке, и чтобы там его не смогли переименовать (прав администратора на объектах нет). Можно ли решить данную задачу стандартными средствами, так что бы это было не столь заморочно, сколь проверять и переименовывать 300 файлов еженедельно.
Товарищи! Возникла такая потребность: Нужно запретить изменять имя эксельевского файла. Расскажу подробнее для чего это нужно. Есть 300 объектов, территориально - далеко друг от друга стоящих. Начальники объектов знают как компьютер включать и как читать и отвечать на почту. Еженедельно они заполняют отчёт в экселевской форме и сбрасывают мне. Я должен свести 300 их отчётов в единую таблицу. Чтобы упросить себе жизнь, я сделал связи между файлами, так что мой сводный отчёт заполняется почти автоматически. Проблема в том, что каждый раз с объектов файлы приходят под разными именами. Чаще всего "копия АВС" или "АВС январь" или вовсе "пупкин". Взывать к совести начальников объектов, чтобы не переименовывали файлы - бесполезно. Нужно запретить изменять имя файла, отправить его по элетронке, и чтобы там его не смогли переименовать (прав администратора на объектах нет). Можно ли решить данную задачу стандартными средствами, так что бы это было не столь заморочно, сколь проверять и переименовывать 300 файлов еженедельно.zoovet
Переименование самого файла, это вообще по сути вопрос не екселю. Учитывая количество файлов в 300шт, осмелюсь предположить, что Вам нужно посмотреть в сторону заполнения данных через облако с помощью гугл форм, сегодня их уже обсуждали и я давал пример как это может быть http://www.excelworld.ru/forum/2-15234-1
В противном случае если у всех 300 филиалов разные названия то нужно прописывать в каждый файл чтоб при закрытие переименовывало и сохраняло файл с нужным именем. Или же при открытии проверяло наименование файла и если оно не такое как заложено выдавать сообщение о том, что файл назван неверно, работать нельзя, переименуйте и попробуйте снова. Но это уже макросы и они должны быть у всех разрешены, короче тут уже пошли тонкости.
Переименование самого файла, это вообще по сути вопрос не екселю. Учитывая количество файлов в 300шт, осмелюсь предположить, что Вам нужно посмотреть в сторону заполнения данных через облако с помощью гугл форм, сегодня их уже обсуждали и я давал пример как это может быть http://www.excelworld.ru/forum/2-15234-1
В противном случае если у всех 300 филиалов разные названия то нужно прописывать в каждый файл чтоб при закрытие переименовывало и сохраняло файл с нужным именем. Или же при открытии проверяло наименование файла и если оно не такое как заложено выдавать сообщение о том, что файл назван неверно, работать нельзя, переименуйте и попробуйте снова. Но это уже макросы и они должны быть у всех разрешены, короче тут уже пошли тонкости.DJ_Marker_MC
Гугл-облако это в данном конкретном случае - область фантастики, такая как параллельный мир А макросы разрешены во всех филиалах Можно ли написать макрос, который будет автоматически переименовывать имя файла при сохранении?
Гугл-облако это в данном конкретном случае - область фантастики, такая как параллельный мир А макросы разрешены во всех филиалах Можно ли написать макрос, который будет автоматически переименовывать имя файла при сохранении?zoovet
zoovet, из области фантастики внести в 300 файлов макрос, который будет переименовывать свой файл в своё уникальное имя. Как вариант, предложу только идею - с реализацией я пас. Обрабатываем 300 файлов с правильными именами макросом, который в какое-то свойство файла записывает это правильное имя файла. (как понимаю - это операция одноразовая) Получили от начальников файлы с именами "как попало" и обрабатываете их другим макросом, который берёт правильное имя файла из свойства файла и если имя отличается от абсолюта, то переименовывает. У меня всё.
zoovet, из области фантастики внести в 300 файлов макрос, который будет переименовывать свой файл в своё уникальное имя. Как вариант, предложу только идею - с реализацией я пас. Обрабатываем 300 файлов с правильными именами макросом, который в какое-то свойство файла записывает это правильное имя файла. (как понимаю - это операция одноразовая) Получили от начальников файлы с именами "как попало" и обрабатываете их другим макросом, который берёт правильное имя файла из свойства файла и если имя отличается от абсолюта, то переименовывает. У меня всё.JayBhagavan
Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов
Накидали все файлы в одну папку, запустили макрос - он всё разберёт и вытянет. И не важно, как файлы названы (лишь бы друг дружку не потёрли) - если в самих файлах есть привязка к объектам.
Накидали все файлы в одну папку, запустили макрос - он всё разберёт и вытянет. И не важно, как файлы названы (лишь бы друг дружку не потёрли) - если в самих файлах есть привязка к объектам.Hugo
Из области фантастики - так как на многих объектах интернет очень жидкий, и даже почта работает через раз. Файл который присылают - пожалуйста. Идея то понятна, вшить в каждый файл свой макрос и разослать. Вот если бы кто помог с реализацией конкретного проекта - был бы благодарен. А то сам то я в VBA - довольно туго разбираюсь
Из области фантастики - так как на многих объектах интернет очень жидкий, и даже почта работает через раз. Файл который присылают - пожалуйста. Идея то понятна, вшить в каждый файл свой макрос и разослать. Вот если бы кто помог с реализацией конкретного проекта - был бы благодарен. А то сам то я в VBA - довольно туго разбираюсьzoovet
JayBhagavan, а че, хорошая идея. Создаем 300 доков, в которых есть супер-скрытый лист и на этом листе пишем для каждого файла его имя и рассылаем в филиалы. Потом создаем две папки для файлов "ПРИНЯЛ" и "ПРАВИЛЬНО". Когда вам отправляют эти 300 файлов скидываем их все скопом в папки принял. Рядом с папками ложем файлик с макросом который открывает поочередно каждый файл с папки "ПРИНЯЛ" и сохраняет в папку "ПРАВИЛЬНО" с именем которое у него забито на супер-скрытом листе в А1.
Вшивать в каждый файл макрос не нужно, достаточно одного исполняемого файла.
[vba]
Код
Sub CopyAllBook() Application.ScreenUpdating = False Application.DisplayAlerts = False Application.CutCopyMode = False Dim wb As Workbook q = ThisWorkbook.Path
'открываем все книги в папке рабочие (там храним файлы от регионов) Dim MyName As String Dim MyPath As String Dim sPath As String ' тут вставил MyPath = ThisWorkbook.Path & "\ПРИНЯЛ\" MyName = Dir(MyPath & "*.xlsx") Do While MyName <> "" sPath = MyPath + MyName Excel.Application.Workbooks.Open sPath IPATH = q & "\ПРАВИЛЬНО\" & ActiveWorkbook.Worksheets("ИМЯ").Range("A1").Value ActiveWorkbook.SaveAs Filename:=IPATH, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False Excel.Application.ActiveWorkbook.Close MyName = Dir Loop
Application.CutCopyMode = True Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
[/vba]
В приложенном архиве папка с тем что предложил JayBhagavan и я попытался реализовать, перетащите папку с архива на рабочий стол. в Принял закинул 3 файла примера, в правильно пока что пусто. Запустите файл МАКРОС и нажмите кнопку.
JayBhagavan, а че, хорошая идея. Создаем 300 доков, в которых есть супер-скрытый лист и на этом листе пишем для каждого файла его имя и рассылаем в филиалы. Потом создаем две папки для файлов "ПРИНЯЛ" и "ПРАВИЛЬНО". Когда вам отправляют эти 300 файлов скидываем их все скопом в папки принял. Рядом с папками ложем файлик с макросом который открывает поочередно каждый файл с папки "ПРИНЯЛ" и сохраняет в папку "ПРАВИЛЬНО" с именем которое у него забито на супер-скрытом листе в А1.
Вшивать в каждый файл макрос не нужно, достаточно одного исполняемого файла.
[vba]
Код
Sub CopyAllBook() Application.ScreenUpdating = False Application.DisplayAlerts = False Application.CutCopyMode = False Dim wb As Workbook q = ThisWorkbook.Path
'открываем все книги в папке рабочие (там храним файлы от регионов) Dim MyName As String Dim MyPath As String Dim sPath As String ' тут вставил MyPath = ThisWorkbook.Path & "\ПРИНЯЛ\" MyName = Dir(MyPath & "*.xlsx") Do While MyName <> "" sPath = MyPath + MyName Excel.Application.Workbooks.Open sPath IPATH = q & "\ПРАВИЛЬНО\" & ActiveWorkbook.Worksheets("ИМЯ").Range("A1").Value ActiveWorkbook.SaveAs Filename:=IPATH, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False Excel.Application.ActiveWorkbook.Close MyName = Dir Loop
Application.CutCopyMode = True Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
[/vba]
В приложенном архиве папка с тем что предложил JayBhagavan и я попытался реализовать, перетащите папку с архива на рабочий стол. в Принял закинул 3 файла примера, в правильно пока что пусто. Запустите файл МАКРОС и нажмите кнопку.DJ_Marker_MC
Не, макросом не давать переименовывать - это будет сложно в реализации. это ведь сперва нужно всех заставить эти макросы каждый раз разрешить, а ещё вероятно (если их уже в обязательном порядке не используете) придётся к половине лично придти и разрешить их в Экселе. Да и долго формулами когда куча файлов или данных - быстрее и проще делать всё макросом, тем более что объект на листах всюду указан.
P.S. А вот если в каждом файле имя уже прописано - тогда да. И может использовать не имя с скрытого листа, а имя объекта? Только нужно его на дозволенные символы проверять перед переименованием файлов.
Не, макросом не давать переименовывать - это будет сложно в реализации. это ведь сперва нужно всех заставить эти макросы каждый раз разрешить, а ещё вероятно (если их уже в обязательном порядке не используете) придётся к половине лично придти и разрешить их в Экселе. Да и долго формулами когда куча файлов или данных - быстрее и проще делать всё макросом, тем более что объект на листах всюду указан.
P.S. А вот если в каждом файле имя уже прописано - тогда да. И может использовать не имя с скрытого листа, а имя объекта? Только нужно его на дозволенные символы проверять перед переименованием файлов.Hugo
Организация (Entity) ООО «Тамбовский бекон» Номер площадки (Site No.) Неделя (Week) 2 Название площадки (Site Name) ЦО «Дубошино» Окончание недели (Wk end) 11.Jan
Можно из всего этого скомпоновать имя файла. Но конечно тамбовским виднее, может это во всех файлах такое
Ну вот например там есть
Организация (Entity) ООО «Тамбовский бекон» Номер площадки (Site No.) Неделя (Week) 2 Название площадки (Site Name) ЦО «Дубошино» Окончание недели (Wk end) 11.Jan
Можно из всего этого скомпоновать имя файла. Но конечно тамбовским виднее, может это во всех файлах такое Hugo
Hugo, а тю... ))) не вьехал))) ну может человеку нужно как то по своему их подписывать, да и наедятся на то, что какой то филиал не возьмет и не удалит строчку сверху, что повлечет за собой неправильный выбор ячейки для компоновки имени, я бы тоже не стал. поэтому более рационально все же супер-скрытый лист как на меня.
Hugo, а тю... ))) не вьехал))) ну может человеку нужно как то по своему их подписывать, да и наедятся на то, что какой то филиал не возьмет и не удалит строчку сверху, что повлечет за собой неправильный выбор ячейки для компоновки имени, я бы тоже не стал. поэтому более рационально все же супер-скрытый лист как на меня.DJ_Marker_MC
И я такого мнения. И файл переименовывать вовсе не обязательно. Просто брать из супер-скрытого листа наименование участка и указывать его в новой таблице. ИМХО.
И я такого мнения. И файл переименовывать вовсе не обязательно. Просто брать из супер-скрытого листа наименование участка и указывать его в новой таблице. ИМХО.Wasilich
Так ведь переименование нужно для того, чтоб работали уже прописанные формулы. А вообще конечно лучше всё делать макросом - тогда возможно не нужен этот скрытый лист, если в каждой таблице есть привязка к объекту. Ну это всё уже я выше говорил...
Так ведь переименование нужно для того, чтоб работали уже прописанные формулы. А вообще конечно лучше всё делать макросом - тогда возможно не нужен этот скрытый лист, если в каждой таблице есть привязка к объекту. Ну это всё уже я выше говорил...Hugo
Накидали все файлы в одну папку, запустили макрос - он всё разберёт и вытянет. И не важно, как файлы названы
Так не интересно! Надо что бы в каждом файле был макрос! Надо как-то через танцы с бубном сделать, что бы документ обрабатывался приложением с подключенными макросами. Что бы документ сам себя переименовывал! Мы не ищем лёгких путей! Да убрать на фиг все связи и формулы! (с 300 файлами-то!!) Один макрос всё сделает!
Цитата
Накидали все файлы в одну папку, запустили макрос - он всё разберёт и вытянет. И не важно, как файлы названы
Так не интересно! Надо что бы в каждом файле был макрос! Надо как-то через танцы с бубном сделать, что бы документ обрабатывался приложением с подключенными макросами. Что бы документ сам себя переименовывал! Мы не ищем лёгких путей! Да убрать на фиг все связи и формулы! (с 300 файлами-то!!) Один макрос всё сделает!alex77755