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

Вход

Регистрация

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

 

= Мир MS Excel/Открыта ли книга другим пользователем - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Открыта ли книга другим пользователем (Макросы/Sub)
Открыта ли книга другим пользователем
Паштет Дата: Пятница, 02.12.2022, 10:06 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
[vba]
Код
Function BookOpenClosed(path As String) As Boolean
    Dim myBook As Workbook
    On Error Resume Next
        Set myBook = Workbooks(path)
    BookOpenClosed = Not myBook Is Nothing
End Function

Privat Sub Zapis_Click()
path = "//сеть/тест.xlsm"
260:
If BookOpenClosed(path) = True Then lRetVal = MsgBox("Повторите попытку через 15 секунд.", vbRetryCancel, vbExclamation)
Select Case lRetVal
   Case vbCancel
       Exit Sub
   Case vbRetry
       GoTo 260
   End Select
Workbooks.Open path, ReadOnly:=False
End Sub
[/vba]
На просторах интернета нашел подобную функцию, но упорно не хочет работать у меня в файле. Смысл проверить не открыта ли книга другим пользователем из сети, если нет, то открыть книгу.
Правильно, что данный код я разместил в форме?


Сообщение отредактировал Паштет - Пятница, 02.12.2022, 10:09
 
Ответить
Сообщение[vba]
Код
Function BookOpenClosed(path As String) As Boolean
    Dim myBook As Workbook
    On Error Resume Next
        Set myBook = Workbooks(path)
    BookOpenClosed = Not myBook Is Nothing
End Function

Privat Sub Zapis_Click()
path = "//сеть/тест.xlsm"
260:
If BookOpenClosed(path) = True Then lRetVal = MsgBox("Повторите попытку через 15 секунд.", vbRetryCancel, vbExclamation)
Select Case lRetVal
   Case vbCancel
       Exit Sub
   Case vbRetry
       GoTo 260
   End Select
Workbooks.Open path, ReadOnly:=False
End Sub
[/vba]
На просторах интернета нашел подобную функцию, но упорно не хочет работать у меня в файле. Смысл проверить не открыта ли книга другим пользователем из сети, если нет, то открыть книгу.
Правильно, что данный код я разместил в форме?

Автор - Паштет
Дата добавления - 02.12.2022 в 10:06
Serge_007 Дата: Пятница, 02.12.2022, 10:22 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 15645
Репутация: 2575 ±
Замечаний: ±

Excel 2016


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеПроверка открыт ли XLS другим пользователем

Автор - Serge_007
Дата добавления - 02.12.2022 в 10:22
Паштет Дата: Пятница, 02.12.2022, 12:08 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
Видел эту тему и другие. Много что перепробовал, но выдает ошибку:
Цитата
ByRet argument type mismatch
и выделяет в строчке:
Цитата
If BookOpenClosed(path) = True Then lRetVal = MsgBox("Повторите попытку через 15 секунд.", vbRetryCancel, vbExclamation)

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


Сообщение отредактировал Паштет - Пятница, 02.12.2022, 12:09
 
Ответить
СообщениеВидел эту тему и другие. Много что перепробовал, но выдает ошибку:
Цитата
ByRet argument type mismatch
и выделяет в строчке:
Цитата
If BookOpenClosed(path) = True Then lRetVal = MsgBox("Повторите попытку через 15 секунд.", vbRetryCancel, vbExclamation)

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

Автор - Паштет
Дата добавления - 02.12.2022 в 12:08
Serge_007 Дата: Пятница, 02.12.2022, 12:15 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 15645
Репутация: 2575 ±
Замечаний: ±

Excel 2016
он должен в модуле лежать?
Да
Причем в стандартном


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
он должен в модуле лежать?
Да
Причем в стандартном

Автор - Serge_007
Дата добавления - 02.12.2022 в 12:15
Паштет Дата: Пятница, 02.12.2022, 12:49 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
Стандартный это в "ЭтаКнига"? Правильно я понимаю?

Только теперь застрял с вопросом как из формы код запустить?
 
Ответить
СообщениеСтандартный это в "ЭтаКнига"? Правильно я понимаю?

Только теперь застрял с вопросом как из формы код запустить?

Автор - Паштет
Дата добавления - 02.12.2022 в 12:49
Serge_007 Дата: Пятница, 02.12.2022, 13:33 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 15645
Репутация: 2575 ±
Замечаний: ±

Excel 2016
Стандартный это в "ЭтаКнига"?
Нет, стандартный - это стандартный
Про модули читайте здесь: Что такое макросы VBA в Excel?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Стандартный это в "ЭтаКнига"?
Нет, стандартный - это стандартный
Про модули читайте здесь: Что такое макросы VBA в Excel?

Автор - Serge_007
Дата добавления - 02.12.2022 в 13:33
RAN Дата: Пятница, 02.12.2022, 13:47 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5638
Репутация: 1145 ±
Замечаний: 0% ±

2010


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеКак проверить открыта ли книга?

Автор - RAN
Дата добавления - 02.12.2022 в 13:47
Паштет Дата: Пятница, 02.12.2022, 13:51 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
Вставил в стандартный модуль.
Вписал туда же:
[vba]
Код
Sub BOS()
260:
If BookOpenClosed(path) = True Then lRetVal = MsgBox("Повторите попытку через 15 секунд.", vbRetryCancel, vbExclamation)
Select Case lRetVal
Case vbCancel
    Exit Sub
Case vbRetry
    GoTo 260
End Select
end sub
[/vba]
В форму добавил этот BOS, но при запуске из формы, все та же ошибка:
Цитата
ByRef argument type mismatch
и указывает на то же место в коде, только уже в модуле.
 
Ответить
СообщениеВставил в стандартный модуль.
Вписал туда же:
[vba]
Код
Sub BOS()
260:
If BookOpenClosed(path) = True Then lRetVal = MsgBox("Повторите попытку через 15 секунд.", vbRetryCancel, vbExclamation)
Select Case lRetVal
Case vbCancel
    Exit Sub
Case vbRetry
    GoTo 260
End Select
end sub
[/vba]
В форму добавил этот BOS, но при запуске из формы, все та же ошибка:
Цитата
ByRef argument type mismatch
и указывает на то же место в коде, только уже в модуле.

Автор - Паштет
Дата добавления - 02.12.2022 в 13:51
Паштет Дата: Пятница, 02.12.2022, 14:06 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
По ссылке RAN имеется следующий код, который я тоже пробовал и получал ту же ошибку:
[vba]
Код
Function IsBookOpen(wbName As String) As Boolean
    Dim wbBook As Workbook: On Error Resume Next
    Set wbBook = Workbooks(wbName)
    IsBookOpen = Not wbBook Is Nothing
End Function
[/vba]
У меня правда возник вопрос: приставка wb перед Name что-то обозначает для кода или это единое название переменной?
 
Ответить
СообщениеПо ссылке RAN имеется следующий код, который я тоже пробовал и получал ту же ошибку:
[vba]
Код
Function IsBookOpen(wbName As String) As Boolean
    Dim wbBook As Workbook: On Error Resume Next
    Set wbBook = Workbooks(wbName)
    IsBookOpen = Not wbBook Is Nothing
End Function
[/vba]
У меня правда возник вопрос: приставка wb перед Name что-то обозначает для кода или это единое название переменной?

Автор - Паштет
Дата добавления - 02.12.2022 в 14:06
and_evg Дата: Пятница, 02.12.2022, 14:20 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 414
Репутация: 72 ±
Замечаний: 0% ±

Excel 2007
Паштет, Где лежит файл, который вы проверяете? В локальной сети или где-то в облаке?
 
Ответить
СообщениеПаштет, Где лежит файл, который вы проверяете? В локальной сети или где-то в облаке?

Автор - and_evg
Дата добавления - 02.12.2022 в 14:20
Паштет Дата: Пятница, 02.12.2022, 14:35 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
В локальной сети
 
Ответить
СообщениеВ локальной сети

Автор - Паштет
Дата добавления - 02.12.2022 в 14:35
Pelena Дата: Пятница, 02.12.2022, 15:51 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 18707
Репутация: 4260 ±
Замечаний: ±

Excel 2016 & Mac Excel
выдает ошибку:
ByRet argument type mismatch

Добавьте в первую строку функции ByVal
[vba]
Код
Function BookOpenClosed(ByVal path As String) As Boolean
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
выдает ошибку:
ByRet argument type mismatch

Добавьте в первую строку функции ByVal
[vba]
Код
Function BookOpenClosed(ByVal path As String) As Boolean
[/vba]

Автор - Pelena
Дата добавления - 02.12.2022 в 15:51
Паштет Дата: Пятница, 02.12.2022, 16:16 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 5 ±
Замечаний: 0% ±

Excel 2010
Ругаться перестал, но на открытый файл не реагирует. В понедельник буду разбираться.
Спасибо за помощь.
 
Ответить
СообщениеРугаться перестал, но на открытый файл не реагирует. В понедельник буду разбираться.
Спасибо за помощь.

Автор - Паштет
Дата добавления - 02.12.2022 в 16:16
RAN Дата: Пятница, 02.12.2022, 18:19 | Сообщение № 14
Группа: Друзья
Ранг: Экселист
Сообщений: 5638
Репутация: 1145 ±
Замечаний: 0% ±

2010
Паштет
https://www.excel-vba.ru/chto-umeet-excel/
ищите, и обрящите!


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПаштет
https://www.excel-vba.ru/chto-umeet-excel/
ищите, и обрящите!

Автор - RAN
Дата добавления - 02.12.2022 в 18:19
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Открыта ли книга другим пользователем (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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