Страницы: 1
RSS
Как избавиться от предупреждения «Файл уже используется», При открытии файла - я сам обрабатываю ситуация
 
При открытии файла я сам макросом обрабатываю ситуацию, когда файл уже используется. Мне не нужно уведомление Excel «Файл уже используется».
Application.DisplayAlert = False в Workbook_Open не помогает.
Как убрать уведомление Excel?
 
Может так поможет
Код
Set TempWb = Workbooks.Open(Filename:="C:\Excel.xlsx", ReadOnly:=True)
Изменено: New - 21.09.2020 11:34:33
 
Цитата
Кирилл Найдёнов написал:
я сам макросом обрабатываю ситуацию, когда файл уже используется
как именно Вы это делаете? Файл на сетевом диске?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Открывайте файл макросом.

Событие Workbook.Open возникает после того, как файл открыт.
Владимир
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
как именно Вы это делаете? Файл на сетевом диске?
Да, файл на сетевом диске.
Цитата
sokol92 написал:
Событие  Workbook.Open  возникает после того, как файл открыт.
Тогда какое событие можно взять, что бы оно возникало до появления этой надписи?

Смысл такой: разные пользователи могут открыть файл (не макросом, просто из Проводника) - если файл занят, то нужно видеть кто именно его взял. Стандартное оповешение Excel не подхидит, т.к. часто пишет "другой пользователь". Я при открытии для редактирования записываю в текстовый файл информацию кто открыл и когда (благо при открытии имя пользователя Excel определяет правильно).
Пользователям чаще нужно открывать файл в режиме для чтения. Кнопки переоткрытия в режиме чтения я давно сделал, они висят на верхней панели, но люди ленятся. Поэтому теперь при открытии возникает большая форма с выбором: "для чтения / для записи", и стандартное окно о том, что файл занят не нужно - мой макрос показывает в каком режиме можно открыть, и кто занял файл.
Нужно вообще избавиться от уведомления при открытии.
 
Цитата
Кирилл Найдёнов написал:
нужно видеть кто именно его взял
это сложно. Даже сам Excel часто не может определить этого.
Ну и опять же чтобы помочь надо понять, как Вы обрабатываете ситуацию, когда файл уже открыт? Как это выглядит, чем не подходит? Я уже спрашивал, но ответ был только на второй вопрос: где файл.
Цитата
Кирилл Найдёнов написал:
Кнопки переоткрытия в режиме чтения я давно сделал
если можете определить, что файл уже кто-то открыл - смысла в этой кнопке нет, можно открывать в зависимости от этого знания. Если уже открыт - открывать на чтение. Если нет - на запись.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Кирилл Найдёнов написал:
Тогда какое событие можно взять, что бы оно возникало до появления этой надписи?
Перечень событий объекта Application приведенздесь. События типа "WorkbookBeforeOpen" в нем нет.
Владимир
 
Цитата
Кирилл Найдёнов написал:
Как избавиться от предупреждения «Файл уже используется», При открытии файла
закрыть уже используемый файл перед открытием нового
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Дмитрий(The_Prist) Щербаков написал: ...как Вы обрабатываете ситуацию, когда файл уже открыт? Как это выглядит, чем не подходит?
Я обрабатываю в Workbook.Open: если файл открывается для редактирования - я вывожу форму где есть выбор "Открыть для редактирования / Для чтения".
При нажатии "Для редактирвования" - во внешний текстовый файл записывается имя текущего пользователя.
При нажатии "Для чтение" - меняю режим на "для чтения".
Если файл сразу открыт для чтения (т.е. его кто-то уже занял) - я вывожу информацию о том, кто именно его занял.
.
Зачем это нужно: 1) пользователям чаще нужен файл для чтения - теперь они сразу могут выбрать такой режим (раньше я делал кнопку "Открыть в режиме для чтения" - но на неё ленились нажимать), 2) Excel часто писал "открыт другим пользователем", а нужно знать кто именно открыл.
Страницы: 1
Наверх