Эксель (Excel). Как прикрутить к файлу диалоговое окно? - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > Эксель (Excel). Как прикрутить к файлу диалоговое окно?

Эксель (Excel). Как прикрутить к файлу диалоговое окно?

Ответ
Поиск в этой теме
Непрочитано 25.11.2009, 08:38
Эксель (Excel). Как прикрутить к файлу диалоговое окно?
Mek
 
Изобретение металлических гаражей
 
Сибирь
Регистрация: 10.09.2004
Сообщений: 559

Всем привет.
Господа программисты, помогите пожалуйста.

Дано: Программа Эксель 2003. Некоторый файл. Расположен на сетевом ресурсе. Доступен разным пользователям.

Проблема: Человеческий фактор. Забывание закрывать файл сразу после завершения активной работы с ним. Во время работы одного из пользователей файл становится недоступным для других (доступно только чтение).

Требуется: Прикрутить к файлу Нечто. Чтобы выскакивало окошко и спрашивало: "Уважаемый пользователь! Вы уже трудитесь над этим файлом N минут. Продолжить? Закрыть?". Допустим чтобы каждые 30 минут такое окошко выскакивало. При выборе "Закрыть" при наличии изменений - стандартный запрос на сохранение. При отсутствии изменений - сразу закрывать.

Реально ли прикрутить это именно к файлу. Чтобы при открытии из любого места с любого компьютера появлялся такой запрос?

п.с. Языками программирования не владею..
__________________
В этом и состоит диалектика жизни
Просмотров: 10707
 
Непрочитано 04.12.2009, 12:11
#21
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638


попробуй поменять qwerty (в двух местах) на другое имя, через надстройку загрузить, на другом компе попробуй, в общем, не знаю я.
__________________
Нерешаемых проблем не бывает.
KronSerg вне форума  
 
Непрочитано 04.12.2009, 12:26
#22
Дерия


 
Регистрация: 04.12.2009
Сообщений: 4


Все отлично заработало. Пересоздала заного модуль и стало все нормально. Не знаю чего там было если честно.

Другая проблема.
Я создала цифровую подпись и сертификат но человек по сети открывает файл и унего макросы отключены. Получается я создала сертификат для личного пользования только на этом компе. Не подскажите как сделать чтобы и другие пользователи смогли работать с этим макросом. Я просто ниразу не настраивала сертьификаты

Последний раз редактировалось Дерия, 04.12.2009 в 15:25.
Дерия вне форума  
 
Непрочитано 09.12.2009, 16:05
#23
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638


Дерия, если хотите ответ пишите новое сообщение, о редактировании старого уведомление не приходит. Перенастройте безопасность макросов на компе в сети и примите с него сертификат. Да, я что зашёл-то, пока суть да дело ещё недочёт исправил:
Код:
[Выделить все]
Public Const cRunIntervalSeconds = 1800 'Время в секундах
Public y As String
Public r As Byte
Public Const cRunWhat = "qwerty"
Public RunWhen As Double
Public Sub Auto_open()
y = ActiveWorkbook.Name
Call qwer
End Sub

Sub qwer()
 RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=True
End Sub
Sub qwerty()
Dim a As Byte
Dim s As String
a = 7
r = r + 1
s = "Документ " & y & " открыт уже " & Format(cRunIntervalSeconds * r / 60, "0.0") & " мин, хотите закрыть его?"
a = MsgBox(s, vbYesNo)
If a = 7 Then Call qwer
If a = 6 Then Workbooks(y).Close
End Sub
Sub Auto_Close()
On Error GoTo 0
Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=False
End Sub
__________________
Нерешаемых проблем не бывает.
KronSerg вне форума  
 
Автор темы   Непрочитано 10.12.2009, 12:25
#24
Mek

Изобретение металлических гаражей
 
Регистрация: 10.09.2004
Сибирь
Сообщений: 559


Цитата:
Да, я что зашёл-то, пока суть да дело ещё недочёт исправил:
Дайте-ка угадаю. Недочет был в том что при свернутом Экселе не было видно как выскакивает окошко? Как раз хотел об этом сказать..

п.с Привет с банкомата получен?
__________________
В этом и состоит диалектика жизни
Mek вне форума  
 
Непрочитано 10.12.2009, 12:41
#25
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638


При свёрнутом Excel, его вкладка начинает мигать жёлтым, разворачивать окно при появлении сообщения или нет решает Виндовс. Косяк был хитрый, если не закрывая сам Excel, закрыть файлик, а потом его ещё раз открыть, сообщения выскакивали и по таймеру первого открытия и по таймеру второго.
Цитата:
п.с Привет с банкомата получен?
Ах вот что это было не понял сразу.
PS Попробую поискать решение для нового косяка.
__________________
Нерешаемых проблем не бывает.
KronSerg вне форума  
 
Автор темы   Непрочитано 10.12.2009, 12:50
#26
Mek

Изобретение металлических гаражей
 
Регистрация: 10.09.2004
Сибирь
Сообщений: 559


Цитата:
Сообщение от KronSerg Посмотреть сообщение
PS Попробую поискать решение для нового косяка.
Сейчас окошко выскакивает даже если эксель свернут. Это в том, предыдущем, не выскакивало.. Так что с этим все нормально..
При установке времени на 10 секунд чего-то бухтит.. какое то предупреждение. ошибка 1004.. но вроде все равно работает.
Если ставить 60 секунд то ошибки вроде нету...
__________________
В этом и состоит диалектика жизни
Mek вне форума  
 
Непрочитано 10.12.2009, 12:56
1 | #27
KronSerg

Вода - моя работа
 
Регистрация: 10.11.2009
Санкт-Петербург
Сообщений: 3,638


Всё, поторопился с первым постом, готовый код с устранённым 1004 и разворачивающий окно:
Код:
[Выделить все]
Public Const cRunIntervalSeconds = 1800 'Время в секундах
Public y As String
Public r As Byte
Public Const cRunWhat = "qwerty"
Public RunWhen As Double
Public Sub Auto_open()
y = ActiveWorkbook.Name
Call qwer
End Sub

Sub qwer()
 RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=True
End Sub
Sub qwerty()
Dim a As Byte
Dim s As String
a = 7
r = r + 1
s = "Документ " & y & " открыт уже " & Format(cRunIntervalSeconds * r / 60, "0.0") & " мин, хотите закрыть его?"
Application.WindowState = xlMaximized
a = MsgBox(s, vbYesNo)
If a = 7 Then Call qwer
If a = 6 Then Workbooks(y).Close
End Sub
Sub Auto_Close()
On Error Resume Next
Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=False
End Sub
__________________
Нерешаемых проблем не бывает.
KronSerg вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > Эксель (Excel). Как прикрутить к файлу диалоговое окно?

Реклама i


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как организовать автоматическую передачу площади штриховки/полилинии в Excel Zuzel AutoCAD 10 08.10.2010 14:53
Как вызвать окно AutoStack Properties в Mtext Sel AutoCAD 3 22.11.2005 17:26
Как в Автокаде в VBA указать окно просмотра (Window) Саша AutoCAD 1 06.09.2004 21:40
Диалоговое окно в ACAD 2004... Pavel Программирование 4 16.04.2004 11:03
как видовое окно viewport сделпть круглым? zodchy2000@mail. AutoCAD 1 10.04.2004 20:20