powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Файл Эксель уже открыт, повторное открытие приведет к потере....
10 сообщений из 10, страница 1 из 1
Файл Эксель уже открыт, повторное открытие приведет к потере....
    #38833151
Ыеузд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
необходимо программно перехватить стандартную аппликацию сообщения в Эксель, что файл уже открыт и не открывать файл повторно.
Подскажите, плз, как это сделать, если открытый уже файл минимизирован?
2007, 7
Спасибо
...
Рейтинг: 0 / 0
Файл Эксель уже открыт, повторное открытие приведет к потере....
    #38833272
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Файл Эксель уже открыт, повторное открытие приведет к потере....
    #38833873
Ыеузд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,
Я енто изучил, спасибо.... Но куда енти коды писать - если в рабочую книгу при открытии (типа первый/последующий раз), то код будет проверять сам себя..... толку нет
при открытии:
Код: vbnet
1.
Call IsBookOpen("Касса.xls", False)


и на игнорирование при уже открытой:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Function IsBookOpen(wbFullName, Err As String) As Boolean
    Dim wbBook As Workbook
    For Each wbBook In Workbooks
        If wbBook.Name = "Касса.xls" Then
           MsgBox "Файл 'Касса'" & " уже открыт, запустите ОСН ФОРМУ"
                     Err = 1
           ActiveWorkbook.Close
           GoTo l
        End If
    Next wbBook
    ChDir "D:\Пр"
   j = "D:\Пр\Касса.xls"
    Workbooks.Open Filename:=j
l: End Function



Если в буферную книгу, то мне это не годиться...
Спасибо
...
Рейтинг: 0 / 0
Файл Эксель уже открыт, повторное открытие приведет к потере....
    #38833992
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ыеузд,

А теперь тоже самое, но по русски. Вы изначально какую цель преследуете? Вы хотели программно проверить открыта ли книга. Вы её программно откуда открываете вообще?
Может эта статья наведет на мысли:
Как отследить событие(например выделение ячеек) в любой книге?
...
Рейтинг: 0 / 0
Файл Эксель уже открыт, повторное открытие приведет к потере....
    #38834024
Ыеузд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

Попробую подробнее (по-русски)...
На сетевом есть книга Эксель - назовет "БЛА", в которой при запуске открывается управляющая форма (модальная). С этой формой работают пользователи.
Но, по их просьбе, прописан код минимизации книги (чтобы можно было работать с другими книгами).
Проблема в том, что они забывают о том, что на их машине уже запущена книга "БЛА". и запускают книгу по новой (при этом игнорируют предупреждения об уже открытой книге "БЛА" на их машине). В результате - теряют все изменения до минимизации книги.
1.Пробовал поставить сохранение по деактивации формы - но не очень хорошо, т.к. после сохранения происходит потеря пароля пользователя через форму и приходиться логиниться по-новой... А для разных пользователей разные допуски...
2.Пробовал запуск книги "БЛА" с книги-запуска (буфера) по типу как в сообщении выше, но тогда другая загвоздка - не могу закрыть книгу-запуск, пока форма книги "БЛА" модальна (ни в опенФайл, ни в активФорм, ни в действиях с формой).

Поэтому и спрашивал, как перехватить событие аппликации при повторном запуске книги "БЛА", чтобы прописать сразу в "БЛА" при событии аппликации - сразу срабатывала кнопка "нет"....
Буду благодарен за другие идеи решить мою задачу
Спасибо
...
Рейтинг: 0 / 0
Файл Эксель уже открыт, повторное открытие приведет к потере....
    #38834404
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ыеузд,

В данном случае вряд ли Excel поможет. Вопрос такой: а в эту книгу изменения потом вносятся? Может имеет смысл изначально дать книге с кодом доступ только для чтения - тогда можно будет попробовать обработать повторное открытие этой же книги.
Хотя это, конечно, грабли.
...
Рейтинг: 0 / 0
Файл Эксель уже открыт, повторное открытие приведет к потере....
    #38834479
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ыеузд,

Не ясно, почему не закрывается "книга-запуск", а если в примере выше вставить строчку

Код: vbnet
1.
2.
3.
    Workbooks.Open Filename:=j
'строка для вставки ThisWorkbook.Close
l: End Function
...
Рейтинг: 0 / 0
Файл Эксель уже открыт, повторное открытие приведет к потере....
    #38834721
Ыеузд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
The_Prist,

дело в том, что "не только для чтения" - исходя из пароля - разные содержания и действия формы.....


sergeyvg,

Пробовал - все равно код приостанавливается на
Код: vbnet
1.
Workbooks.Open Filename:=j

и срабатывает после закрытия формы..., к тому же
Код: vbnet
1.
ThisWorkbook.Close

приведет к закрытию книги "БЛА"....
...
Рейтинг: 0 / 0
Файл Эксель уже открыт, повторное открытие приведет к потере....
    #38834830
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ыеузд,

Тогда вариантов нет. Надо просто забить на тех пользователей, которые настолько забывчивые, что не помнят об уже открытом файле и настолько ленивы, что не могут проверить открыт ли уже файл и настолько глупы, что даже после появления сообщения об открытом файле все равно жмут Открыть, теряя свои же наработки и настройки. Считаю логичным для таких пользователей по 100 раз заново вводить данные, раз не хватает соображалки проверить. Не умеют работать головой - пусть работают руками.
...
Рейтинг: 0 / 0
Файл Эксель уже открыт, повторное открытие приведет к потере....
    #38834868
Фотография Stepler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_PristЫеузд,

Тогда вариантов нет. Надо просто забить на тех пользователей, которые настолько забывчивые, что не помнят об уже открытом файле и настолько ленивы, что не могут проверить открыт ли уже файл и настолько глупы, что даже после появления сообщения об открытом файле все равно жмут Открыть, теряя свои же наработки и настройки. Считаю логичным для таких пользователей по 100 раз заново вводить данные, раз не хватает соображалки проверить. Не умеют работать головой - пусть работают руками.

К твоим замечанием добавлю, что я им на панели инструментов ярлык запуска формы сделал, так они и его игнорируют....Мдаааааа, но мне же разгребать их _авно(пардон)... Я б им руки отбил... Как вариант - прописал им: Сканирование накладной -распознавание полей - втягивание полей в Эксель - занос полей в форму.... А они кладут накладную в сканер "верх ногами" и сумма идет как дата+ вводимая сумма.... ХА-ХА = сволочи...


Спасибо за участие в моей проблеме.

Счас уже за своей машиной, хоть поищу по форуму об автоматизации зума формы....
Накропал вот енто:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Sub ФормаВЭкран()
 'FIO -  имя формы
Kw = FIO.Width / Application.UsableWidth  'коэффициент ширины макета/ширине экрана
Min = IIf(100 / Kw > 400, 400, 100 / Kw)
Max = IIf(100 * Kw < 10, 10, 100 * Kw)
If FIO.Width - Application.UsableWidth > 0 Then
FIO.Zoom = Max
Else
FIO.Zoom = Min
End If
FIO.Width = Application.UsableWidth - 10
 FIO.Height = Application.UsableHeight
 FIO.Show
End Sub


но хочу автоматизировать до состояния смены названия формы, но где-то лажу, не подскажешь как применить типа
Код: vbnet
1.
2.
naz=FIO.name
Kw =naz.Width / Appl......
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Файл Эксель уже открыт, повторное открытие приведет к потере....
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]