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

Вход

Регистрация

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

 

= Мир MS Excel/Учёт прихода ухода (+ сервер времени) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Учёт прихода ухода (+ сервер времени) (Формулы)
Учёт прихода ухода (+ сервер времени)
nulun Дата: Среда, 29.01.2014, 17:48 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте!
Столкнулся с нетривиальной для меня задачей: нужно сделать журнал прихода/ухода.
Условия: 1 пользователь - 1 файл.
Файл располагается на сервере. У пользователя есть доступ к файлу.
Пользователь нажимает сочетание клавиш, забитое в макрос. Отображается время нажатия макроса(это приход). Ещё раз - отображается время ещё раз (уход).

Макросы или формулы с итерацией для того, чтобы время не обновлялось я нашёл на этом форуме. (за что, к слову, всем огромное спасибо).

Проблема: существующая схема всегда отображает время на компьютере пользователя. Это не подходит.
Нужно: при активации макроса время пишется, то, которое на сервере.

Следовательно у меня появилась идея: на сервере всегда открыт один файл (СЕРВЕР) в котором есть идущие часы в ячейке A1 (+ файл пересохраняется раз в минуту) У пользователя нет доступа к редактированию этого файла, но есть к чтению.
При нажатии макроса в файле КЛИЕНТ: он обращается к ячейке A1 в файле СЕРВЕР, считывает оттуда данные и копирует их (только значения) в ячейку в файле КЛИЕНТ.
При этом лист в файле КЛИЕНТ изначально запаролен, а макрос снимает защиту перед копированием и включает снова после того как завершился.

Не исключаю, что это всё полный бред. И есть куда более стройные способы добиться того же результата.
А конечный результат прост:
Пользователь нажал сочетание клавиш - в ячейку левее (или в ту же самую) записалось время с локального сервера. в соседней ячейке снова отобразилось текущее время. При это пользователь не может вносить изменения в ячейкам.
Решённая задача есть в приложенном файле, но он полностью зависит от времени на компьютере пользователя, что не подходит.

Господа, есть мысли как это в принципе осуществить?
К сообщению приложен файл: prihod_uhod.xlsm (90.9 Kb)
 
Ответить
СообщениеЗдравствуйте!
Столкнулся с нетривиальной для меня задачей: нужно сделать журнал прихода/ухода.
Условия: 1 пользователь - 1 файл.
Файл располагается на сервере. У пользователя есть доступ к файлу.
Пользователь нажимает сочетание клавиш, забитое в макрос. Отображается время нажатия макроса(это приход). Ещё раз - отображается время ещё раз (уход).

Макросы или формулы с итерацией для того, чтобы время не обновлялось я нашёл на этом форуме. (за что, к слову, всем огромное спасибо).

Проблема: существующая схема всегда отображает время на компьютере пользователя. Это не подходит.
Нужно: при активации макроса время пишется, то, которое на сервере.

Следовательно у меня появилась идея: на сервере всегда открыт один файл (СЕРВЕР) в котором есть идущие часы в ячейке A1 (+ файл пересохраняется раз в минуту) У пользователя нет доступа к редактированию этого файла, но есть к чтению.
При нажатии макроса в файле КЛИЕНТ: он обращается к ячейке A1 в файле СЕРВЕР, считывает оттуда данные и копирует их (только значения) в ячейку в файле КЛИЕНТ.
При этом лист в файле КЛИЕНТ изначально запаролен, а макрос снимает защиту перед копированием и включает снова после того как завершился.

Не исключаю, что это всё полный бред. И есть куда более стройные способы добиться того же результата.
А конечный результат прост:
Пользователь нажал сочетание клавиш - в ячейку левее (или в ту же самую) записалось время с локального сервера. в соседней ячейке снова отобразилось текущее время. При это пользователь не может вносить изменения в ячейкам.
Решённая задача есть в приложенном файле, но он полностью зависит от времени на компьютере пользователя, что не подходит.

Господа, есть мысли как это в принципе осуществить?

Автор - nulun
Дата добавления - 29.01.2014 в 17:48
doober Дата: Среда, 29.01.2014, 19:18 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Цитата
Не исключаю, что это всё полный бред

Мое мнение,для конкретного решения,это так
Цитата
Файл располагается на сервере.

Конкретнее о сервере.База на мем есть?


 
Ответить
Сообщение
Цитата
Не исключаю, что это всё полный бред

Мое мнение,для конкретного решения,это так
Цитата
Файл располагается на сервере.

Конкретнее о сервере.База на мем есть?

Автор - doober
Дата добавления - 29.01.2014 в 19:18
Hugo Дата: Среда, 29.01.2014, 19:23 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3255
Репутация: 707 ±
Замечаний: 0% ±

2019
Тут помню недавно время с амариканского сайта тянули (по временной зоне) - можно это использовать.
Вот только месяц там был текстом по английски - вот эту проблему и решали.
Можно использовать. Если кто-то поможет тему найти, или код :)
Какой сайт - не помню. Ни форум, ни сервер времени...
Хотя этих серверов теперь... Если конечно всегда доступен интернет.
Но поиск по "сервер времени vba" выдаёт первую ссылку на эту тему.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеТут помню недавно время с амариканского сайта тянули (по временной зоне) - можно это использовать.
Вот только месяц там был текстом по английски - вот эту проблему и решали.
Можно использовать. Если кто-то поможет тему найти, или код :)
Какой сайт - не помню. Ни форум, ни сервер времени...
Хотя этих серверов теперь... Если конечно всегда доступен интернет.
Но поиск по "сервер времени vba" выдаёт первую ссылку на эту тему.

Автор - Hugo
Дата добавления - 29.01.2014 в 19:23
doober Дата: Среда, 29.01.2014, 19:53 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Цитата
Вот только месяц там был текстом по английски

Надо знать,где просить hands

Время по Гринвичу
[vba]
Код
Function Time_Inet() As Date
        Dim dt As Date, sHTMLBody As String
        sURL = "http://wwp.greenwichmeantime.com/time/scripts/clock-8/x.php"
        On Error Resume Next
        Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
        With oXMLHTTP
            .Open "GET", sURL, False
            .send
            sHTMLBody = .responsetext
        End With
        dt = 25569 + Val(sHTMLBody) / 86400000
        Set oXMLHTTP = Nothing
        Time_Inet = dt
End Function
[/vba]

Мой код то поменьше будет




Сообщение отредактировал doober - Среда, 29.01.2014, 20:02
 
Ответить
Сообщение
Цитата
Вот только месяц там был текстом по английски

Надо знать,где просить hands

Время по Гринвичу
[vba]
Код
Function Time_Inet() As Date
        Dim dt As Date, sHTMLBody As String
        sURL = "http://wwp.greenwichmeantime.com/time/scripts/clock-8/x.php"
        On Error Resume Next
        Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
        With oXMLHTTP
            .Open "GET", sURL, False
            .send
            sHTMLBody = .responsetext
        End With
        dt = 25569 + Val(sHTMLBody) / 86400000
        Set oXMLHTTP = Nothing
        Time_Inet = dt
End Function
[/vba]

Мой код то поменьше будет

Автор - doober
Дата добавления - 29.01.2014 в 19:53
nulun Дата: Среда, 29.01.2014, 19:56 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Конкретнее о сервере.База на мем есть?

Не очень понял о какой базе идёт речь. SQL вроде бы нет. Сервер на W2003S. В файловой системе есть для каждого пользователя расшаренная ему папка.

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

Буду рад идеям.

Можно использовать. Если кто-то поможет тему найти, или код
Какой сайт - не помню. Ни форум, ни сервер времени...
Хотя этих серверов теперь... Если конечно всегда доступен интернет.
Но поиск по "сервер времени vba" выдаёт первую ссылку на эту тему.


Спасибо. Нашёл что-то похожее. Буду думать и в этом направлении.
Код:


Сообщение отредактировал nulun - Среда, 29.01.2014, 20:00
 
Ответить
Сообщение
Конкретнее о сервере.База на мем есть?

Не очень понял о какой базе идёт речь. SQL вроде бы нет. Сервер на W2003S. В файловой системе есть для каждого пользователя расшаренная ему папка.

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

Буду рад идеям.

Можно использовать. Если кто-то поможет тему найти, или код
Какой сайт - не помню. Ни форум, ни сервер времени...
Хотя этих серверов теперь... Если конечно всегда доступен интернет.
Но поиск по "сервер времени vba" выдаёт первую ссылку на эту тему.


Спасибо. Нашёл что-то похожее. Буду думать и в этом направлении.
Код:

Автор - nulun
Дата добавления - 29.01.2014 в 19:56
nulun Дата: Среда, 29.01.2014, 20:07 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Время по Гринвичу
[vba]
Код

Function Time_Inet() As Date
     Dim dt As Date, sHTMLBody As String
     sURL = "http://wwp.greenwichmeantime.com/time/scripts/clock-8/x.php"
     On Error Resume Next
     Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
     With oXMLHTTP
         .Open "GET", sURL, False
         .send
         sHTMLBody = .responsetext
     End With
     dt = 25569 + Val(sHTMLBody) / 86400000
     Set oXMLHTTP = Nothing
     Time_Inet = dt
End Function
[/vba]


Спасибо! Но, к сожалению, не слишком понял как это использовать. Мне следует создать отдельный стандартный модуль или добавить к коду листа в книге. И наконец: правильно ли я понимаю, что этот код меняет значения функции NOW() на синхронизированное?
 
Ответить
Сообщение
Время по Гринвичу
[vba]
Код

Function Time_Inet() As Date
     Dim dt As Date, sHTMLBody As String
     sURL = "http://wwp.greenwichmeantime.com/time/scripts/clock-8/x.php"
     On Error Resume Next
     Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
     With oXMLHTTP
         .Open "GET", sURL, False
         .send
         sHTMLBody = .responsetext
     End With
     dt = 25569 + Val(sHTMLBody) / 86400000
     Set oXMLHTTP = Nothing
     Time_Inet = dt
End Function
[/vba]


Спасибо! Но, к сожалению, не слишком понял как это использовать. Мне следует создать отдельный стандартный модуль или добавить к коду листа в книге. И наконец: правильно ли я понимаю, что этот код меняет значения функции NOW() на синхронизированное?

Автор - nulun
Дата добавления - 29.01.2014 в 20:07
doober Дата: Среда, 29.01.2014, 20:22 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Будоражите желтую ячейку,получаете время интернета.
В вашей процедуре внес изменения.
Для коррекции времени добавте( количество часов)/24
Для Москвы это будет 3/24
dt = 25569 + Val(sHTMLBody) / 86400000+3/24
К сообщению приложен файл: prihod_uhod-1-.xlsm (93.4 Kb)


 
Ответить
СообщениеБудоражите желтую ячейку,получаете время интернета.
В вашей процедуре внес изменения.
Для коррекции времени добавте( количество часов)/24
Для Москвы это будет 3/24
dt = 25569 + Val(sHTMLBody) / 86400000+3/24

Автор - doober
Дата добавления - 29.01.2014 в 20:22
nulun Дата: Пятница, 31.01.2014, 14:10 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Будоражите желтую ячейку,получаете время интернета.
В вашей процедуре внес изменения.
Для коррекции времени добавте( количество часов)/24
Для Москвы это будет 3/24
dt = 25569 + Val(sHTMLBody) / 86400000+3/24


Это великолепно! Огромное спасибо!
Помечу тему, как "РЕШЕНО"
 
Ответить
Сообщение
Будоражите желтую ячейку,получаете время интернета.
В вашей процедуре внес изменения.
Для коррекции времени добавте( количество часов)/24
Для Москвы это будет 3/24
dt = 25569 + Val(sHTMLBody) / 86400000+3/24


Это великолепно! Огромное спасибо!
Помечу тему, как "РЕШЕНО"

Автор - nulun
Дата добавления - 31.01.2014 в 14:10
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Учёт прихода ухода (+ сервер времени) (Формулы)
  • Страница 1 из 1
  • 1
Поиск:

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