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

Вход

Регистрация

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

 

= Мир MS Excel/запретить переименовывать файл эксель - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » запретить переименовывать файл эксель (Макросы/Sub)
запретить переименовывать файл эксель
zoovet Дата: Четверг, 15.01.2015, 16:05 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Товарищи! Возникла такая потребность: Нужно запретить изменять имя эксельевского файла.
Расскажу подробнее для чего это нужно.
Есть 300 объектов, территориально - далеко друг от друга стоящих. Начальники объектов знают как компьютер включать и как читать и отвечать на почту. Еженедельно они заполняют отчёт в экселевской форме и сбрасывают мне. Я должен свести 300 их отчётов в единую таблицу. Чтобы упросить себе жизнь, я сделал связи между файлами, так что мой сводный отчёт заполняется почти автоматически. Проблема в том, что каждый раз с объектов файлы приходят под разными именами. Чаще всего "копия АВС" или "АВС январь" или вовсе "пупкин". Взывать к совести начальников объектов, чтобы не переименовывали файлы - бесполезно. Нужно запретить изменять имя файла, отправить его по элетронке, и чтобы там его не смогли переименовать (прав администратора на объектах нет).
Можно ли решить данную задачу стандартными средствами, так что бы это было не столь заморочно, сколь проверять и переименовывать 300 файлов еженедельно.
 
Ответить
СообщениеТоварищи! Возникла такая потребность: Нужно запретить изменять имя эксельевского файла.
Расскажу подробнее для чего это нужно.
Есть 300 объектов, территориально - далеко друг от друга стоящих. Начальники объектов знают как компьютер включать и как читать и отвечать на почту. Еженедельно они заполняют отчёт в экселевской форме и сбрасывают мне. Я должен свести 300 их отчётов в единую таблицу. Чтобы упросить себе жизнь, я сделал связи между файлами, так что мой сводный отчёт заполняется почти автоматически. Проблема в том, что каждый раз с объектов файлы приходят под разными именами. Чаще всего "копия АВС" или "АВС январь" или вовсе "пупкин". Взывать к совести начальников объектов, чтобы не переименовывали файлы - бесполезно. Нужно запретить изменять имя файла, отправить его по элетронке, и чтобы там его не смогли переименовать (прав администратора на объектах нет).
Можно ли решить данную задачу стандартными средствами, так что бы это было не столь заморочно, сколь проверять и переименовывать 300 файлов еженедельно.

Автор - zoovet
Дата добавления - 15.01.2015 в 16:05
zoovet Дата: Четверг, 15.01.2015, 16:08 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Может не в ту ветку форума написал, так извините если что :)
 
Ответить
СообщениеМожет не в ту ветку форума написал, так извините если что :)

Автор - zoovet
Дата добавления - 15.01.2015 в 16:08
DJ_Marker_MC Дата: Четверг, 15.01.2015, 16:16 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация: 213 ±
Замечаний: 0% ±

Excel 2019
Переименование самого файла, это вообще по сути вопрос не екселю.
Учитывая количество файлов в 300шт, осмелюсь предположить, что Вам нужно посмотреть в сторону заполнения данных через облако с помощью гугл форм, сегодня их уже обсуждали и я давал пример как это может быть
http://www.excelworld.ru/forum/2-15234-1

В противном случае если у всех 300 филиалов разные названия то нужно прописывать в каждый файл чтоб при закрытие переименовывало и сохраняло файл с нужным именем.
Или же при открытии проверяло наименование файла и если оно не такое как заложено выдавать сообщение о том, что файл назван неверно, работать нельзя, переименуйте и попробуйте снова.
Но это уже макросы и они должны быть у всех разрешены, короче тут уже пошли тонкости.
 
Ответить
СообщениеПереименование самого файла, это вообще по сути вопрос не екселю.
Учитывая количество файлов в 300шт, осмелюсь предположить, что Вам нужно посмотреть в сторону заполнения данных через облако с помощью гугл форм, сегодня их уже обсуждали и я давал пример как это может быть
http://www.excelworld.ru/forum/2-15234-1

В противном случае если у всех 300 филиалов разные названия то нужно прописывать в каждый файл чтоб при закрытие переименовывало и сохраняло файл с нужным именем.
Или же при открытии проверяло наименование файла и если оно не такое как заложено выдавать сообщение о том, что файл назван неверно, работать нельзя, переименуйте и попробуйте снова.
Но это уже макросы и они должны быть у всех разрешены, короче тут уже пошли тонкости.

Автор - DJ_Marker_MC
Дата добавления - 15.01.2015 в 16:16
zoovet Дата: Четверг, 15.01.2015, 16:32 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Гугл-облако это в данном конкретном случае - область фантастики, такая как параллельный мир :)
А макросы разрешены во всех филиалах :)
Можно ли написать макрос, который будет автоматически переименовывать имя файла при сохранении?
 
Ответить
СообщениеГугл-облако это в данном конкретном случае - область фантастики, такая как параллельный мир :)
А макросы разрешены во всех филиалах :)
Можно ли написать макрос, который будет автоматически переименовывать имя файла при сохранении?

Автор - zoovet
Дата добавления - 15.01.2015 в 16:32
DJ_Marker_MC Дата: Четверг, 15.01.2015, 16:38 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация: 213 ±
Замечаний: 0% ±

Excel 2019
Ничего фантастическго, тупо ОДНА ссылка для заполнения.
а можете показать один конкретный файл что Вам присылают назад?
 
Ответить
СообщениеНичего фантастическго, тупо ОДНА ссылка для заполнения.
а можете показать один конкретный файл что Вам присылают назад?

Автор - DJ_Marker_MC
Дата добавления - 15.01.2015 в 16:38
JayBhagavan Дата: Четверг, 15.01.2015, 16:42 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация: 27 ±
Замечаний: 0% ±

Excel 2010
zoovet, из области фантастики внести в 300 файлов макрос, который будет переименовывать свой файл в своё уникальное имя. Как вариант, предложу только идею - с реализацией я пас.
Обрабатываем 300 файлов с правильными именами макросом, который в какое-то свойство файла записывает это правильное имя файла. (как понимаю - это операция одноразовая)
Получили от начальников файлы с именами "как попало" и обрабатываете их другим макросом, который берёт правильное имя файла из свойства файла и если имя отличается от абсолюта, то переименовывает.
У меня всё.


Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов
 
Ответить
Сообщениеzoovet, из области фантастики внести в 300 файлов макрос, который будет переименовывать свой файл в своё уникальное имя. Как вариант, предложу только идею - с реализацией я пас.
Обрабатываем 300 файлов с правильными именами макросом, который в какое-то свойство файла записывает это правильное имя файла. (как понимаю - это операция одноразовая)
Получили от начальников файлы с именами "как попало" и обрабатываете их другим макросом, который берёт правильное имя файла из свойства файла и если имя отличается от абсолюта, то переименовывает.
У меня всё.

Автор - JayBhagavan
Дата добавления - 15.01.2015 в 16:42
Hugo Дата: Четверг, 15.01.2015, 16:53 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Накидали все файлы в одну папку, запустили макрос - он всё разберёт и вытянет. И не важно, как файлы названы (лишь бы друг дружку не потёрли) - если в самих файлах есть привязка к объектам.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНакидали все файлы в одну папку, запустили макрос - он всё разберёт и вытянет. И не важно, как файлы названы (лишь бы друг дружку не потёрли) - если в самих файлах есть привязка к объектам.

Автор - Hugo
Дата добавления - 15.01.2015 в 16:53
zoovet Дата: Четверг, 15.01.2015, 16:57 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 34
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Из области фантастики - так как на многих объектах интернет очень жидкий, и даже почта работает через раз.
Файл который присылают - пожалуйста.
Идея то понятна, вшить в каждый файл свой макрос и разослать. Вот если бы кто помог с реализацией конкретного проекта - был бы благодарен. А то сам то я в VBA - довольно туго разбираюсь
К сообщению приложен файл: _-__2.xls (79.0 Kb)
 
Ответить
СообщениеИз области фантастики - так как на многих объектах интернет очень жидкий, и даже почта работает через раз.
Файл который присылают - пожалуйста.
Идея то понятна, вшить в каждый файл свой макрос и разослать. Вот если бы кто помог с реализацией конкретного проекта - был бы благодарен. А то сам то я в VBA - довольно туго разбираюсь

Автор - zoovet
Дата добавления - 15.01.2015 в 16:57
DJ_Marker_MC Дата: Четверг, 15.01.2015, 17:15 | Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация: 213 ±
Замечаний: 0% ±

Excel 2019
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 файла примера, в правильно пока что пусто.
Запустите файл МАКРОС и нажмите кнопку.
К сообщению приложен файл: 300.rar (33.8 Kb)
 
Ответить
Сообщение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
Дата добавления - 15.01.2015 в 17:15
Hugo Дата: Четверг, 15.01.2015, 17:16 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Не, макросом не давать переименовывать - это будет сложно в реализации. это ведь сперва нужно всех заставить эти макросы каждый раз разрешить, а ещё вероятно (если их уже в обязательном порядке не используете) придётся к половине лично придти и разрешить их в Экселе.
Да и долго формулами когда куча файлов или данных - быстрее и проще делать всё макросом, тем более что объект на листах всюду указан.

P.S. А вот если в каждом файле имя уже прописано - тогда да. И может использовать не имя с скрытого листа, а имя объекта? Только нужно его на дозволенные символы проверять перед переименованием файлов.


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Четверг, 15.01.2015, 17:19
 
Ответить
СообщениеНе, макросом не давать переименовывать - это будет сложно в реализации. это ведь сперва нужно всех заставить эти макросы каждый раз разрешить, а ещё вероятно (если их уже в обязательном порядке не используете) придётся к половине лично придти и разрешить их в Экселе.
Да и долго формулами когда куча файлов или данных - быстрее и проще делать всё макросом, тем более что объект на листах всюду указан.

P.S. А вот если в каждом файле имя уже прописано - тогда да. И может использовать не имя с скрытого листа, а имя объекта? Только нужно его на дозволенные символы проверять перед переименованием файлов.

Автор - Hugo
Дата добавления - 15.01.2015 в 17:16
DJ_Marker_MC Дата: Четверг, 15.01.2015, 17:22 | Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация: 213 ±
Замечаний: 0% ±

Excel 2019
Hugo, а что такое имя объекта? где это?
 
Ответить
СообщениеHugo, а что такое имя объекта? где это?

Автор - DJ_Marker_MC
Дата добавления - 15.01.2015 в 17:22
Hugo Дата: Четверг, 15.01.2015, 17:33 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Ну вот например там есть

Организация (Entity) ООО «Тамбовский бекон»
Номер площадки (Site No.) Неделя (Week) 2
Название площадки (Site Name) ЦО «Дубошино» Окончание недели (Wk end) 11.Jan

Можно из всего этого скомпоновать имя файла. Но конечно тамбовским виднее, может это во всех файлах такое :)


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеНу вот например там есть

Организация (Entity) ООО «Тамбовский бекон»
Номер площадки (Site No.) Неделя (Week) 2
Название площадки (Site Name) ЦО «Дубошино» Окончание недели (Wk end) 11.Jan

Можно из всего этого скомпоновать имя файла. Но конечно тамбовским виднее, может это во всех файлах такое :)

Автор - Hugo
Дата добавления - 15.01.2015 в 17:33
DJ_Marker_MC Дата: Четверг, 15.01.2015, 17:41 | Сообщение № 13
Группа: Друзья
Ранг: Ветеран
Сообщений: 991
Репутация: 213 ±
Замечаний: 0% ±

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

Автор - DJ_Marker_MC
Дата добавления - 15.01.2015 в 17:41
Hugo Дата: Четверг, 15.01.2015, 18:31 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Можно найти "Организация (Entity)" и брать что правее и с остальными так же.
Если где не нашлось - те файлы на ручное управление.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеМожно найти "Организация (Entity)" и брать что правее и с остальными так же.
Если где не нашлось - те файлы на ручное управление.

Автор - Hugo
Дата добавления - 15.01.2015 в 18:31
Wasilich Дата: Пятница, 16.01.2015, 00:43 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
более рационально все же супер-скрытый лист
И я такого мнения. :)
И файл переименовывать вовсе не обязательно. Просто брать из супер-скрытого листа наименование участка и указывать его в новой таблице. ИМХО.
 
Ответить
Сообщение
более рационально все же супер-скрытый лист
И я такого мнения. :)
И файл переименовывать вовсе не обязательно. Просто брать из супер-скрытого листа наименование участка и указывать его в новой таблице. ИМХО.

Автор - Wasilich
Дата добавления - 16.01.2015 в 00:43
Hugo Дата: Пятница, 16.01.2015, 10:31 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Так ведь переименование нужно для того, чтоб работали уже прописанные формулы.
А вообще конечно лучше всё делать макросом - тогда возможно не нужен этот скрытый лист, если в каждой таблице есть привязка к объекту. Ну это всё уже я выше говорил...


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеТак ведь переименование нужно для того, чтоб работали уже прописанные формулы.
А вообще конечно лучше всё делать макросом - тогда возможно не нужен этот скрытый лист, если в каждой таблице есть привязка к объекту. Ну это всё уже я выше говорил...

Автор - Hugo
Дата добавления - 16.01.2015 в 10:31
alex77755 Дата: Пятница, 16.01.2015, 12:05 | Сообщение № 17
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Цитата
Накидали все файлы в одну папку, запустили макрос - он всё разберёт и вытянет. И не важно, как файлы названы

Так не интересно!
Надо что бы в каждом файле был макрос! Надо как-то через танцы с бубном сделать, что бы документ обрабатывался приложением с подключенными макросами. Что бы документ сам себя переименовывал!
Мы не ищем лёгких путей!
Да убрать на фиг все связи и формулы! (с 300 файлами-то!!)
Один макрос всё сделает!


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение
Цитата
Накидали все файлы в одну папку, запустили макрос - он всё разберёт и вытянет. И не важно, как файлы названы

Так не интересно!
Надо что бы в каждом файле был макрос! Надо как-то через танцы с бубном сделать, что бы документ обрабатывался приложением с подключенными макросами. Что бы документ сам себя переименовывал!
Мы не ищем лёгких путей!
Да убрать на фиг все связи и формулы! (с 300 файлами-то!!)
Один макрос всё сделает!

Автор - alex77755
Дата добавления - 16.01.2015 в 12:05
Мир MS Excel » Вопросы и решения » Вопросы по VBA » запретить переименовывать файл эксель (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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