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

Вход

Регистрация

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

 

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

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

Excel 2016
Добрый день!
Можно ли при запуске кода запустить проверку: если открываемый файл уже открыт, то появляется окошко с предупреждением, а если закрыт, то процедура продолжается?
К сообщению приложен файл: 7126039.xlsm (19.9 Kb) · 6172596.xlsx (9.1 Kb)
 
Ответить
СообщениеДобрый день!
Можно ли при запуске кода запустить проверку: если открываемый файл уже открыт, то появляется окошко с предупреждением, а если закрыт, то процедура продолжается?

Автор - AVI
Дата добавления - 31.05.2019 в 04:45
RAN Дата: Пятница, 31.05.2019, 06:41 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Function IsBookOpen(wbFullName As String) As Boolean
    Dim iFF As Integer
    iFF = FreeFile
    On Error Resume Next
    Open wbFullName For Random Access Read Write Lock Read Write As #iFF
    Close #iFF
    IsBookOpen = Err
End Function
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Function IsBookOpen(wbFullName As String) As Boolean
    Dim iFF As Integer
    iFF = FreeFile
    On Error Resume Next
    Open wbFullName For Random Access Read Write Lock Read Write As #iFF
    Close #iFF
    IsBookOpen = Err
End Function
[/vba]

Автор - RAN
Дата добавления - 31.05.2019 в 06:41
AVI Дата: Пятница, 31.05.2019, 07:38 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 523
Репутация: 17 ±
Замечаний: 0% ±

Excel 2016
RAN, Простите, я не понял как это работает. В файле 7126039 есть форма, вот при нажатии на кнопку на форме кодом сначала надо проверять открыт ли файл 6172596, если открыт, то вылазит предупреждение и выполнение останавливается, если не открыт, то выполнение продолжается.
 
Ответить
СообщениеRAN, Простите, я не понял как это работает. В файле 7126039 есть форма, вот при нажатии на кнопку на форме кодом сначала надо проверять открыт ли файл 6172596, если открыт, то вылазит предупреждение и выполнение останавливается, если не открыт, то выполнение продолжается.

Автор - AVI
Дата добавления - 31.05.2019 в 07:38
_Boroda_ Дата: Пятница, 31.05.2019, 07:45 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
На самом деле куча способов. Пожалуй, самый простой
Попробуйте в коде обратиться к тому файлу. Ну, например присвоить переменной имя первого листа или значение первой ячейки первого листа. И дальше смотрим - есть ли ошибка. Если есть, то файл закрыт, если нет, то открыт.
Сейчас кодом не могу написать, тороплюсь. Через пару часиков, если самостоятельно у Вас не получится


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНа самом деле куча способов. Пожалуй, самый простой
Попробуйте в коде обратиться к тому файлу. Ну, например присвоить переменной имя первого листа или значение первой ячейки первого листа. И дальше смотрим - есть ли ошибка. Если есть, то файл закрыт, если нет, то открыт.
Сейчас кодом не могу написать, тороплюсь. Через пару часиков, если самостоятельно у Вас не получится

Автор - _Boroda_
Дата добавления - 31.05.2019 в 07:45
AVI Дата: Пятница, 31.05.2019, 07:57 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 523
Репутация: 17 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Спасибо ,я понял принцип. Не понял как распознать ошибку
 
Ответить
Сообщение_Boroda_, Спасибо ,я понял принцип. Не понял как распознать ошибку

Автор - AVI
Дата добавления - 31.05.2019 в 07:57
bmv98rus Дата: Пятница, 31.05.2019, 08:03 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4106
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
AVI, только уточните, что в вашем понимании открыт? Файл может быть открыт как на чтение так и на запись, может быть открыт сторонним приложением, может быть открыт другим пользователем, если он в сети.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеAVI, только уточните, что в вашем понимании открыт? Файл может быть открыт как на чтение так и на запись, может быть открыт сторонним приложением, может быть открыт другим пользователем, если он в сети.

Автор - bmv98rus
Дата добавления - 31.05.2019 в 08:03
RAN Дата: Пятница, 31.05.2019, 08:05 | Сообщение № 7
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Sub test()
    If IsBookOpen("D:\Лист.xlsx") Then MsgBox "Да пошел ты...": Exit Sub
    Workbooks.Open "D:\Лист.xlsx"
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Sub test()
    If IsBookOpen("D:\Лист.xlsx") Then MsgBox "Да пошел ты...": Exit Sub
    Workbooks.Open "D:\Лист.xlsx"
End Sub
[/vba]

Автор - RAN
Дата добавления - 31.05.2019 в 08:05
AVI Дата: Понедельник, 03.06.2019, 14:26 | Сообщение № 8
Группа: Проверенные
Ранг: Ветеран
Сообщений: 523
Репутация: 17 ±
Замечаний: 0% ±

Excel 2016
RAN, Все-таки оно либо не работает, либо я опять не правильно объяснил, либо оно, все же, не работает)
В файле 1 есть форма, нажимая кнопку на которой происходит заполнение файла 2. Нужно сделать так, что бы перед тем как макрос попытаться открыть файл 2 была проверка не открыт ли файл 2, и если он открыт, то вылезло сообщение об этом и процесс завершен, а если не открыт, то выполнение продолжилось .
_Boroda_, Я понял в чем смысл, тока не понял как остановить макрос когда вылезла ошибка. Я порыскал про отлов Error'v в макросах, но как применить не понял.
К сообщению приложен файл: 1213575.xlsm (19.9 Kb) · 7251815.xlsx (9.1 Kb)
 
Ответить
СообщениеRAN, Все-таки оно либо не работает, либо я опять не правильно объяснил, либо оно, все же, не работает)
В файле 1 есть форма, нажимая кнопку на которой происходит заполнение файла 2. Нужно сделать так, что бы перед тем как макрос попытаться открыть файл 2 была проверка не открыт ли файл 2, и если он открыт, то вылезло сообщение об этом и процесс завершен, а если не открыт, то выполнение продолжилось .
_Boroda_, Я понял в чем смысл, тока не понял как остановить макрос когда вылезла ошибка. Я порыскал про отлов Error'v в макросах, но как применить не понял.

Автор - AVI
Дата добавления - 03.06.2019 в 14:26
_Boroda_ Дата: Понедельник, 03.06.2019, 14:41 | Сообщение № 9
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16674
Репутация: 6479 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Так нужно?
[vba]
Код
Sub tt()
    On Error Resume Next
    a = Workbooks("7251815.xlsx").Sheets(1).Cells(1)
    If Err Then
        x_ = "Закрыт"
    Else
        x_ = "Открыт"
    End If
    On Error GoTo 0
    MsgBox x_
End Sub
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
[vba]
Код
Sub tt()
    On Error Resume Next
    a = Workbooks("7251815.xlsx").Sheets(1).Cells(1)
    If Err Then
        x_ = "Закрыт"
    Else
        x_ = "Открыт"
    End If
    On Error GoTo 0
    MsgBox x_
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 03.06.2019 в 14:41
RAN Дата: Понедельник, 03.06.2019, 15:34 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Саш, человек одну строчку вставить не может, а ты ему целых девять подкидываешь!


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеСаш, человек одну строчку вставить не может, а ты ему целых девять подкидываешь!

Автор - RAN
Дата добавления - 03.06.2019 в 15:34
AVI Дата: Понедельник, 03.06.2019, 15:52 | Сообщение № 11
Группа: Проверенные
Ранг: Ветеран
Сообщений: 523
Репутация: 17 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Спасибо, все работает!

RAN, Как-то так
 
Ответить
Сообщение_Boroda_, Спасибо, все работает!

RAN, Как-то так

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

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