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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как запретить одновременное открытие файла?
Как запретить одновременное открытие файла?
zud Дата: Среда, 19.12.2012, 10:29 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Подскажите, как запретить одновременное открытие файла более чем одним юзером? Требуется закрыть часть полей для одного из юзеров. Сейчас он может открыть для чтения и увидеть секретные поля, когда файл открыт другим.


Сообщение отредактировал zud - Среда, 19.12.2012, 11:15
 
Ответить
СообщениеПодскажите, как запретить одновременное открытие файла более чем одним юзером? Требуется закрыть часть полей для одного из юзеров. Сейчас он может открыть для чтения и увидеть секретные поля, когда файл открыт другим.

Автор - zud
Дата добавления - 19.12.2012 в 10:29
Саня Дата: Четверг, 20.12.2012, 11:22 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
при открытии файла (workbook_open) проверяется наличие некоего файла (пустой файл с названием, напр. FileIsUsed):
если этот файл есть - целевой файл закрывается, нет - открывается и создает файл-индикатор.
При закрытии удаляет файл-индикатор
 
Ответить
Сообщениепри открытии файла (workbook_open) проверяется наличие некоего файла (пустой файл с названием, напр. FileIsUsed):
если этот файл есть - целевой файл закрывается, нет - открывается и создает файл-индикатор.
При закрытии удаляет файл-индикатор

Автор - Саня
Дата добавления - 20.12.2012 в 11:22
Alex_ST Дата: Четверг, 20.12.2012, 15:52 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
А может быть как-то UDF-ку заюзать:[vba]
Code
Function FileIsBusy(File$) As Boolean   ' не открывая файла проверяет, открыт ли он вообще кем-либо
    Dim FN%: FN = FreeFile
    On Error Resume Next
    Open File For Random Access Write Lock Write As #FN
    Close #FN
    FileIsBusy = (Err <> 0)
End Function
[/vba]Только вот куда её вставить? Что-то не соображу...



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеА может быть как-то UDF-ку заюзать:[vba]
Code
Function FileIsBusy(File$) As Boolean   ' не открывая файла проверяет, открыт ли он вообще кем-либо
    Dim FN%: FN = FreeFile
    On Error Resume Next
    Open File For Random Access Write Lock Write As #FN
    Close #FN
    FileIsBusy = (Err <> 0)
End Function
[/vba]Только вот куда её вставить? Что-то не соображу...

Автор - Alex_ST
Дата добавления - 20.12.2012 в 15:52
Alex_ST Дата: Четверг, 20.12.2012, 15:57 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Сань, а зачем внешний файл я не понял?
Может быть при открытии сразу куда-то (например, в CustomDocumentProperties или в Names) прописать флаг. А при закрытии флаг сбрасывать.
Если при открытии файла событие Auto_Open обнаруживает флаг, то файл закрывается.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Четверг, 20.12.2012, 15:58
 
Ответить
СообщениеСань, а зачем внешний файл я не понял?
Может быть при открытии сразу куда-то (например, в CustomDocumentProperties или в Names) прописать флаг. А при закрытии флаг сбрасывать.
Если при открытии файла событие Auto_Open обнаруживает флаг, то файл закрывается.

Автор - Alex_ST
Дата добавления - 20.12.2012 в 15:57
Саня Дата: Четверг, 20.12.2012, 16:45 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
у меня была "подобная" ситуация:
несколько людей должны были заполнять один файл, но по-очереди и тот файл был как "фонарь", типа "подожди, не трогай"
свойство или имя - это хорошо, но их не видно, во-первых
а во-вторых, как я прочел не так давно в шибко умной книжке, код от данных должен быть отделен, т.е., код не должен менять носитель, в котором содержится... cool
 
Ответить
Сообщениеу меня была "подобная" ситуация:
несколько людей должны были заполнять один файл, но по-очереди и тот файл был как "фонарь", типа "подожди, не трогай"
свойство или имя - это хорошо, но их не видно, во-первых
а во-вторых, как я прочел не так давно в шибко умной книжке, код от данных должен быть отделен, т.е., код не должен менять носитель, в котором содержится... cool

Автор - Саня
Дата добавления - 20.12.2012 в 16:45
Alex_ST Дата: Четверг, 20.12.2012, 16:56 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Сань, отделять код от данных можно и нужно в базах данных, а вот как код от данных отделить в нашей любимой головоломке, раз она (он) заточена именно на совместное их хранение именно в виде единого файла?



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Четверг, 20.12.2012, 16:56
 
Ответить
СообщениеСань, отделять код от данных можно и нужно в базах данных, а вот как код от данных отделить в нашей любимой головоломке, раз она (он) заточена именно на совместное их хранение именно в виде единого файла?

Автор - Alex_ST
Дата добавления - 20.12.2012 в 16:56
Саня Дата: Четверг, 20.12.2012, 17:06 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
Quote
в нашей любимой головоломке

если ты имеешь ввиду программу Excel и все, что связано с ней с точки зрения программирования, то разделение здесь реализуется с помощью надстроек, отдельных программных книг (Personal тот же)...
 
Ответить
Сообщение
Quote
в нашей любимой головоломке

если ты имеешь ввиду программу Excel и все, что связано с ней с точки зрения программирования, то разделение здесь реализуется с помощью надстроек, отдельных программных книг (Personal тот же)...

Автор - Саня
Дата добавления - 20.12.2012 в 17:06
Alex_ST Дата: Четверг, 20.12.2012, 17:25 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Надстройки и персонал хороши для хранения кода, работающего только на этой машине.
Если же файл выкладывается на расшаренном ресурсе, то по неволе будешь вынужден делать микст из кода и данных.
А вообще-то тема заинтересовала. Путь решения понятен.
Код получится не сложный. Вот только как его защитить от защиты от макросов? biggrin
Сегодня уже слепить пример не успею. А завтра попробую.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНадстройки и персонал хороши для хранения кода, работающего только на этой машине.
Если же файл выкладывается на расшаренном ресурсе, то по неволе будешь вынужден делать микст из кода и данных.
А вообще-то тема заинтересовала. Путь решения понятен.
Код получится не сложный. Вот только как его защитить от защиты от макросов? biggrin
Сегодня уже слепить пример не успею. А завтра попробую.

Автор - Alex_ST
Дата добавления - 20.12.2012 в 17:25
Саня Дата: Четверг, 20.12.2012, 17:36 | Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
да я не спорю, что есть ситуации, когда код не стоит отделять от данных... тем более, что это даже глупо biggrin

по-поводу защиты от отключенных макросов - делал раз так:
добавил лист в книгу, оставил в нем одну ячейку, в нее красными чернилами "Макросы отключены!!!", остальные листы "Очень скрыты".
Макросы включены - рабочие листы отображаются, дополнительный скрывается, при закрытии - наоборот.
 
Ответить
Сообщениеда я не спорю, что есть ситуации, когда код не стоит отделять от данных... тем более, что это даже глупо biggrin

по-поводу защиты от отключенных макросов - делал раз так:
добавил лист в книгу, оставил в нем одну ячейку, в нее красными чернилами "Макросы отключены!!!", остальные листы "Очень скрыты".
Макросы включены - рабочие листы отображаются, дополнительный скрывается, при закрытии - наоборот.

Автор - Саня
Дата добавления - 20.12.2012 в 17:36
Alex_ST Дата: Четверг, 20.12.2012, 20:45 | Сообщение № 10
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Саня,
я это именно так и собирался завтра сделать: по BeforeClose "шибко ныкать" все листы и показывать только один с инструкцией по включению макросов (обращаться к нему по специфическому CodeName). А по Open прятать лист с инструкцией и показывать все.
(уж и не помню, где, когда и у кого подсмотрел/подслушал такой способ, но запомнил и даже как-то где-то сам применял)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Пятница, 21.12.2012, 09:24
 
Ответить
СообщениеСаня,
я это именно так и собирался завтра сделать: по BeforeClose "шибко ныкать" все листы и показывать только один с инструкцией по включению макросов (обращаться к нему по специфическому CodeName). А по Open прятать лист с инструкцией и показывать все.
(уж и не помню, где, когда и у кого подсмотрел/подслушал такой способ, но запомнил и даже как-то где-то сам применял)

Автор - Alex_ST
Дата добавления - 20.12.2012 в 20:45
Alex_ST Дата: Пятница, 21.12.2012, 12:09 | Сообщение № 11
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Ну вот как-то примерно так получилось:
При открытии книги первым пользователем в ней создаётся невидимое имя, задаваемое в коде константой Const sFlag$,
красный лист-плакат с объявлением о необходимости включить макросы прячется, а все остальные показываются.
Имя автоматически удаляется из книги при закрытии файла и все листы, кроме красного плаката, скрываются.
Если другой пользователь во время работы первого попытается тоже открыть книгу, то в книге будет обнаружено уже созданное первым пользователем имя и файл будет сразу закрыт.
Если у пользователя отключены макросы, то при открытии книги процедура отображения скрытых листов не выполнится и ему будет виден только этот лист.
Как быть, если у пользователя отключены макросы и он при этом не первый открывший - НЕ ЗНАЮ!!!

Проверить не смог, т.к. я у локального файла всегда первый открывший, а расшаривать и народ на других компах отвлекать от работы не хочу.
К сообщению приложен файл: ExclusiveWbAcce.xls (45.0 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Пятница, 21.12.2012, 12:12
 
Ответить
СообщениеНу вот как-то примерно так получилось:
При открытии книги первым пользователем в ней создаётся невидимое имя, задаваемое в коде константой Const sFlag$,
красный лист-плакат с объявлением о необходимости включить макросы прячется, а все остальные показываются.
Имя автоматически удаляется из книги при закрытии файла и все листы, кроме красного плаката, скрываются.
Если другой пользователь во время работы первого попытается тоже открыть книгу, то в книге будет обнаружено уже созданное первым пользователем имя и файл будет сразу закрыт.
Если у пользователя отключены макросы, то при открытии книги процедура отображения скрытых листов не выполнится и ему будет виден только этот лист.
Как быть, если у пользователя отключены макросы и он при этом не первый открывший - НЕ ЗНАЮ!!!

Проверить не смог, т.к. я у локального файла всегда первый открывший, а расшаривать и народ на других компах отвлекать от работы не хочу.

Автор - Alex_ST
Дата добавления - 21.12.2012 в 12:09
Саня Дата: Пятница, 21.12.2012, 13:15 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
критика: cool
1. открыл, макросы off, три листа отображены - не то, что хотелось
2. при закрытии появляется "красный октябрь" и диалог о сохранении - не приемлемо
3. в начале открыл (как-то), закрыл, а потом при повторном открытии "книга уже кем-то используется" wacko
 
Ответить
Сообщениекритика: cool
1. открыл, макросы off, три листа отображены - не то, что хотелось
2. при закрытии появляется "красный октябрь" и диалог о сохранении - не приемлемо
3. в начале открыл (как-то), закрыл, а потом при повторном открытии "книга уже кем-то используется" wacko

Автор - Саня
Дата добавления - 21.12.2012 в 13:15
Alex_ST Дата: Пятница, 21.12.2012, 13:48 | Сообщение № 13
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Что-то там не так...
Ну, во-первых, я приаттачил к предыдущему посту файл, не закрыв его и, соответственно, не дав убить имя и заныкать листы.
Побороть "плакат" при закрытии я , кажется , забыл… Надо посмотреть.
Вот выложил уже закрытый.
К сообщению приложен файл: ExclusiveWbAcce.xls (44.5 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Пятница, 21.12.2012, 13:57
 
Ответить
СообщениеЧто-то там не так...
Ну, во-первых, я приаттачил к предыдущему посту файл, не закрыв его и, соответственно, не дав убить имя и заныкать листы.
Побороть "плакат" при закрытии я , кажется , забыл… Надо посмотреть.
Вот выложил уже закрытый.

Автор - Alex_ST
Дата добавления - 21.12.2012 в 13:48
Alex_ST Дата: Пятница, 21.12.2012, 13:57 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Проверил.
Оказывается "плакат" при закрытии и запрос на сохранение я не поборол.
И, честно говоря, пока не понимаю как можно одновременно и вопрос подавить (ведь книга-то при закрытии изменяется - имя убивается, листы скрываются, "плакат" показывается), и изменения юзера сохранить если нужно, и дать ему возможность выйти без сохранения если вдруг что-то в файле налажал?



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Пятница, 21.12.2012, 13:58
 
Ответить
СообщениеПроверил.
Оказывается "плакат" при закрытии и запрос на сохранение я не поборол.
И, честно говоря, пока не понимаю как можно одновременно и вопрос подавить (ведь книга-то при закрытии изменяется - имя убивается, листы скрываются, "плакат" показывается), и изменения юзера сохранить если нужно, и дать ему возможность выйти без сохранения если вдруг что-то в файле налажал?

Автор - Alex_ST
Дата добавления - 21.12.2012 в 13:57
Саня Дата: Пятница, 21.12.2012, 15:20 | Сообщение № 15
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
[vba]
Code
Private Sub Workbook_BeforeClose(Cancel As Boolean)
     'Stop

     If Me.Saved Then
         ' обработка при закрытии (*)
         Me.Save

     Else
         Select Case MsgBox("Сохранить изменения в файле?", vbYesNoCancel)
         Case vbYes
             ' (*)
             Me.Save

         Case vbNo   ' здесь вилы - нельзя после косяков что-то сохранять, не сохранив сами косяки
             ' (*)
             Me.Saved = True

         Case vbCancel
             Cancel = True
             Me.Saved = True
         End Select
     End If
End Sub
[/vba]
 
Ответить
Сообщение[vba]
Code
Private Sub Workbook_BeforeClose(Cancel As Boolean)
     'Stop

     If Me.Saved Then
         ' обработка при закрытии (*)
         Me.Save

     Else
         Select Case MsgBox("Сохранить изменения в файле?", vbYesNoCancel)
         Case vbYes
             ' (*)
             Me.Save

         Case vbNo   ' здесь вилы - нельзя после косяков что-то сохранять, не сохранив сами косяки
             ' (*)
             Me.Saved = True

         Case vbCancel
             Cancel = True
             Me.Saved = True
         End Select
     End If
End Sub
[/vba]

Автор - Саня
Дата добавления - 21.12.2012 в 15:20
Гисер Дата: Понедельник, 16.09.2013, 17:10 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Господа, вам так и не удалось решить эту проблему?
У меня аналогичная проблема.
Фаил лежит в Dropbox (программа для общего хранения и пользования файлами)
попробовал ваш файлик открыл его с двух компов первый раз все работало.
Потом постоянно выдает, что фаил открыт другим пользователем.
Если вы нашли решение, помогите пожалуйста.
 
Ответить
СообщениеГоспода, вам так и не удалось решить эту проблему?
У меня аналогичная проблема.
Фаил лежит в Dropbox (программа для общего хранения и пользования файлами)
попробовал ваш файлик открыл его с двух компов первый раз все работало.
Потом постоянно выдает, что фаил открыт другим пользователем.
Если вы нашли решение, помогите пожалуйста.

Автор - Гисер
Дата добавления - 16.09.2013 в 17:10
Alex_ST Дата: Понедельник, 16.09.2013, 21:49 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Фаил лежит в Dropbox
Странно, что с файлом, лежащим на Dropbox, вообще ч то-то получилось.
Ведь папка на Dropbox - это достаточно большая разница по сравнению с расшаренной папкой на файл-селвере в локалке.
Там и протоколы другие, и время фиксации изменений в файле.
Dropbox - это по сути самостоятельные папки с файлами "в облаке", содержимое которых синхронизируется с их зеркалами на локальных компах.
И фиксируются только сохраненные изменения в файлах.
Поэтому странно, что вообще что-то получилось.
В модифицированном коде программы я сделал так, что сразу же после открытия файла, не открытого кем-то ещё, в нём не только прописывается имя-признак того, что он уже открыт, но и сразу же сохраняется.
Правда, могут возникнуть потом трудности с открыванием файла, который был некорректно закрыт (например, просто по краху Офиса или разрыву коннекта.
И предупреждаю: БЕЗ СОХРАНЕНИЯ ФАЙЛА ЗАКРЫТЬ ЕГО ТЕПЕРЬ НЕ УДАСТСЯ !!!
К сообщению приложен файл: 9015852.xls (43.5 Kb)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Фаил лежит в Dropbox
Странно, что с файлом, лежащим на Dropbox, вообще ч то-то получилось.
Ведь папка на Dropbox - это достаточно большая разница по сравнению с расшаренной папкой на файл-селвере в локалке.
Там и протоколы другие, и время фиксации изменений в файле.
Dropbox - это по сути самостоятельные папки с файлами "в облаке", содержимое которых синхронизируется с их зеркалами на локальных компах.
И фиксируются только сохраненные изменения в файлах.
Поэтому странно, что вообще что-то получилось.
В модифицированном коде программы я сделал так, что сразу же после открытия файла, не открытого кем-то ещё, в нём не только прописывается имя-признак того, что он уже открыт, но и сразу же сохраняется.
Правда, могут возникнуть потом трудности с открыванием файла, который был некорректно закрыт (например, просто по краху Офиса или разрыву коннекта.
И предупреждаю: БЕЗ СОХРАНЕНИЯ ФАЙЛА ЗАКРЫТЬ ЕГО ТЕПЕРЬ НЕ УДАСТСЯ !!!

Автор - Alex_ST
Дата добавления - 16.09.2013 в 21:49
Гисер Дата: Вторник, 17.09.2013, 14:16 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Не подходит к сожалению данный вариант
Пришла такая мысль! Что если создать отдельную папку "Обработка" и написать макрос который когда открываешь файл перемещает его туда. Второй пользователь заходит видит, что файла нет, соответственно с ним работает кто то другой. А после закрытия макрос перемещает его на свое место.
А вот в написании такого макроса прошу помощи у вас господа специалисты.
 
Ответить
СообщениеНе подходит к сожалению данный вариант
Пришла такая мысль! Что если создать отдельную папку "Обработка" и написать макрос который когда открываешь файл перемещает его туда. Второй пользователь заходит видит, что файла нет, соответственно с ним работает кто то другой. А после закрытия макрос перемещает его на свое место.
А вот в написании такого макроса прошу помощи у вас господа специалисты.

Автор - Гисер
Дата добавления - 17.09.2013 в 14:16
Alex_ST Дата: Вторник, 17.09.2013, 18:09 | Сообщение № 19
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3206
Репутация: 609 ±
Замечаний: 0% ±

2003
Ну, переместить открытый файл из папки в папку - это вряд ли... :D
Можно, конечно, сразу после открытия файла пересохранить и открыть его у себя на компе, а источник на DropBox'е убить. А при закрытии опять скинуть на DropBox , а у себя убить...
Но как-то это слишком много рискованных пересылок по сети, да и тяжёлый файл будет сливаться долго, т.к. апстрим всё-таки чаще всего меньше даунстрима. А комп, сервер или канал может и глюкнуть во время пересылки...
Возможен, наверное, другой вариант с "защитой от честных людей".
Не в отдельной папке файлик-признак класть, а там же рядышком класть какой-нибудь пустой txt-файлик с таким же именем, как у Excel-файла.
(с таким же - чтобы в проводнике они рядышком визуально были и не злонамеренный юзер, увидев его, даже и не пытался файл открыть, а пустой - чтобы махоньким был и потому быстро синхронизировался с DropBox'ом).
В отдельную папку прятать файл-признак, ИМХО, смысла нет, т.к. пользователь-вредитель на своём компе всё равно при желании эту папку найдёт и файлик, мешающий открывать интересующий его файл, оттуда удалит, а синхронизация DropBox'а уже удалит и его "зеркало в облаке".
При этом процедуры в моём примере меняются незначительно - нужно вместо записи в файл имени-признака просто создавать рядом файл-признак. А при закрытии - удалять его.
Попробую, конечно подпилить, но я сейчас на больничном (сопли на клаву текут ручьём и от кашля даблклики по мышке получаются вместо кликов, да и жена в постель гонит, градусником размахивая и ингалятором угрожая :) )
А весь набранный сундук бесценных сокровищ (файлы-примеры и литература) на компе на работе.
Попробую урвать время и что-нибудь вспомнить (давно ничего не писАл - завал на работе)



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНу, переместить открытый файл из папки в папку - это вряд ли... :D
Можно, конечно, сразу после открытия файла пересохранить и открыть его у себя на компе, а источник на DropBox'е убить. А при закрытии опять скинуть на DropBox , а у себя убить...
Но как-то это слишком много рискованных пересылок по сети, да и тяжёлый файл будет сливаться долго, т.к. апстрим всё-таки чаще всего меньше даунстрима. А комп, сервер или канал может и глюкнуть во время пересылки...
Возможен, наверное, другой вариант с "защитой от честных людей".
Не в отдельной папке файлик-признак класть, а там же рядышком класть какой-нибудь пустой txt-файлик с таким же именем, как у Excel-файла.
(с таким же - чтобы в проводнике они рядышком визуально были и не злонамеренный юзер, увидев его, даже и не пытался файл открыть, а пустой - чтобы махоньким был и потому быстро синхронизировался с DropBox'ом).
В отдельную папку прятать файл-признак, ИМХО, смысла нет, т.к. пользователь-вредитель на своём компе всё равно при желании эту папку найдёт и файлик, мешающий открывать интересующий его файл, оттуда удалит, а синхронизация DropBox'а уже удалит и его "зеркало в облаке".
При этом процедуры в моём примере меняются незначительно - нужно вместо записи в файл имени-признака просто создавать рядом файл-признак. А при закрытии - удалять его.
Попробую, конечно подпилить, но я сейчас на больничном (сопли на клаву текут ручьём и от кашля даблклики по мышке получаются вместо кликов, да и жена в постель гонит, градусником размахивая и ингалятором угрожая :) )
А весь набранный сундук бесценных сокровищ (файлы-примеры и литература) на компе на работе.
Попробую урвать время и что-нибудь вспомнить (давно ничего не писАл - завал на работе)

Автор - Alex_ST
Дата добавления - 17.09.2013 в 18:09
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как запретить одновременное открытие файла?
  • Страница 1 из 1
  • 1
Поиск:

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